我正在尝试更改命名范围所指的地址。工作簿中有两个同名范围,一个范围为工作簿,另一个范围为SheetA
. 我正在使用这段代码:
Sub changeNamedRangeAddress(bk As Workbook, rangeName As String, newRange As Range)
bk.Names(rangeName).RefersTo = newRange
End Sub
当我查看bk.Names(rangeName)
即时窗口中的值时,它似乎引用了该名称的全局版本,因为以下返回 true:
?typeof bk.Names(rangeName).Parent is Workbook
但是在 sub 运行之后,本地范围版本的地址已更改为的地址,newRange.address
而全局地址保持不变。
我还能做些什么来确保.RefersTo
以全局命名范围为目标?
编辑:当此脚本运行时,本地范围的命名范围所指的工作表处于活动状态。