我的工作表中有一些动态命名范围。我使用以下公式使它们动态化:
= $ A $ 1:rowend($ A $ 1)
其中row end是一个自定义函数,它在行“A”中到达空单元格之前返回最后一个单元格
命名范围的命名如下:“iec_air” 还有另一个命名范围:“iec_ground”
现在的问题是,当我在单元格上应用数据验证并选择直接引用“iec_air”的列表时,它可以工作但是当尝试使用间接(“iec _”&“air”)来实现相同的事情时它不起作用
当我的命名范围是静态的时,它正在工作,而不是它。不知道如何解决它?
答案 0 :(得分:1)
你知道如何使用VBA吗? 您可以做的一件事是在工作表模块中创建一个事件,并根据空白单元格动态调整命名范围的大小。
示例
Sub setRangeDynamically()
dim oRange as range
'Set range from cell(1,1) until the first blank cell downwards
set oRange = thisworkbook.sheets("blabla").range(cells(1,1),cells(1,1).end(xldown))
thisworkbook.Names.Add Name:="MyRange", RefersTo:=oRange
end sub
创建数据验证:
With thisworkbook.sheets("BlaBla").range("B2").Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=MyRange"
End With