VBA 工作表子在另一个工作表中创建命名范围

标签 vba excel

我有一个私有(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/

相关文章:

Excel VBA - 检查工作表是否受密码保护

excel - 循环优化/定制

Excel 2016 : Error accessing file. 网络连接可能已丢失

excel - 无法在函数内将数据写入 Excel 2007/2010 中的 VBA 单元格

excel - 将多个值列转换为新的键值对

html - 在 Excel VBA 中使用 getElementsBy??Name

vba - 当我使用 Sleep 时如何防止我的后台宏停止?

excel - 通过 VBA 宏打开 MS Excel 时禁用 "update links message"

vba - 从列标题填充列表框的标题

excel - 对具有相同值的excel公式值(动态)进行排序