【发布时间】:2018-10-10 12:29:36
【问题描述】:
我在 excel 中创建了命名范围,范围的命名基于 sheet2 上的键值。 现在我在另一个 sheet1 上创建了下拉列表,使用公式 - INDIRECT,再次基于 key,在 sheet1 上。如何在下拉列表中添加空白/特殊符号?我无法在工作表上的已排序项目之间添加空单元格。 表2:
我有 2 个基于 MAT/AE 列的命名范围,第一个是 C2:C4 的范围,下一个是 C5:C6。
我有 Sheet1,我使用数据验证,使用公式 INDIRECT 连接 MAT1&AE11,并且我的值基于 Sheet2 的范围。
所以我的问题是,如何在此列表中添加空白/特殊字符?
范围代码:
Sub Start()
lf_index_row = 1
lf_name_space_row = 2
gf_namespace = ""
Do
lf_index_row = lf_index_row + 1
lf_material = Sheets(gc_data).Cells(lf_index_row, 1)
lf_location = Sheets(gc_data).Cells(lf_index_row, 2)
gf_new_namespace = "X" & lf_material & lf_location
If gf_new_namespace = "X" Then
If gf_namespace = "" Then
End
Else
'create namespace
Set lf_range = Range(Cells(lf_start_number, 3), Cells(lf_end_number, 3))
lf_range.Select
Range(Cells(lf_start_number, 3), Cells(lf_end_number, 3)).Select
ActiveWorkbook.Names.Add Name:=gf_namespace, RefersTo:=lf_range
End
End If
End If
If gf_namespace <> gf_new_namespace Then
If gf_namespace = "" Then
'initialize newnamespace
gf_namespace = gf_new_namespace
lf_start_number = lf_index_row
lf_end_number = lf_index_row
Else
'create namespace
Set lf_range = Range(Cells(lf_start_number, 3), Cells(lf_end_number, 3))
lf_range.Select
Range(Cells(lf_start_number, 3), Cells(lf_end_number, 3)).Select
ActiveWorkbook.Names.Add Name:=gf_namespace, RefersTo:=lf_range
'initialize newnamespace
gf_namespace = gf_new_namespace
lf_start_number = lf_index_row
lf_end_number = lf_index_row
End If
Else
lf_end_number = lf_index_row
End If
Loop
End Sub
间接公式:
第一个命名范围的定义:
【问题讨论】:
-
你能去掉
Igonre blank的复选标记吗? -
我可以删除它,但它不起作用,因为在我的范围内没有空格
-
那你想做什么?不修改 Sheet2 上的范围,而是直接在下拉列表中添加一个或多个值?可能是动态的?为什么不能将特殊字符放在指定范围内?
-
如果我在下拉列表中使用公式 INDIRECT,我该如何添加它们,可能有什么我不知道的吗?
-
我仍然不清楚你的意图是什么。您想在数据验证下拉列表中增加一行,对吗?这个额外的行应该包含什么?没有?特殊字符(哪些)?而且您不能将这些添加到您现有的命名范围(为什么不)?您必须看到,除了您在这里告诉我们的内容之外,我们对您的项目、它的约束和要求以及您想要实现的目标一无所知。