繁体   English   中英

使用间接引用时,动态命名范围不起作用

[英]Dynamic named range not working when referred with indirect

我的工作表中有一些名为Dynamics的Ranges.I使用以下公式使它们成为动态的:

= $ A $ 1:行额($ A $ 1)

其中行尾是一个自定义函数,它将在行“ A”中到达空单元之前返回最后一个单元

命名范围如下:“ iec_air”还有另一个命名范围:“ iec_ground”

现在的问题是,当我在一个单元格上应用datavalidation并选择直接引用“ iec_air”的列表时,它可以工作,但是当尝试使用indirect(“ iec _”&“ air”)来实现同一件事时,它却无法工作

当我的命名范围是静态的时,它正在工作,而不是不工作。任何想法如何解决它?

您知道如何使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM