我有一个私有(private)子项目,需要在另一个工作表中创建命名范围。它需要保留一个工作表函数,因为它是一个 Worksheet_Change
子函数。我已经成功地能够使用此行将范围变量设置为等于另一张纸上的范围:
Set rng2 = Sheets("Lists").Range(Sheets("Lists").Cells(2, Col), Sheets("Lists").Cells(Unique, Col))
但是,当我将 rng2
放入代码的其他部分时,它只是引用事件工作表中的正确范围。
这是我尝试过的:
ActiveWorkbook.Names.Add Name:="Level" & Col, RefersTo:= _
"= " & Sheets("Lists").Range(Sheets("Lists").Cells(2, Col), Sheets("Lists").Cells(Unique, Col)).Address & ""
和:
ActiveWorkbook.Names.Add Name:="Level" & Col, RefersTo:= _
"=" & rng2.Address & ""
底部函数在作为一个整体存储在工作簿内的模块中时可以工作,但同样,在工作表子中不起作用。
我还在底部尝试中尝试了 Sheets("Lists").rng2.Address
。
最佳答案
要使地址包含工作表的名称,您必须设置 external
参数:
rng2.address(external:=True)
关于VBA 工作表子在另一个工作表中创建命名范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219132/