是否可以将选定范围(使用链接复制?)链接到插件工作表,然后在该插件工作簿中创建一个命名范围,然后最终创建一个命名范围,它引用存储在插件中的那个命名范围?
例如,我有此数据:
我正在尝试使用指向外接程序工作表的链接进行复制。 Addin称为“ addin_test.xlam”,存储在其中的工作表称为“ ws_test”。我有这段代码:
Dim rng As Range
Set rng = Selection
rng.Copy
ThisWorkbook.Sheets("ws_test").Range("A1").PasteSpecial
((如何复制链接,而不是绝对值?我希望我的插件表根据活动表的值更新其数据)
然后我在外接程序工作簿中创建一个命名范围:
ThisWorkbook.Names.Add Name:="Test_addin_name", RefersTo:=ThisWorkbook.Sheets("ws_test").Range("A1:A3")
最后,我正在寻找一种在活动表(打开的工作簿)中创建命名范围并将其链接到我的加载项中的命名范围的方法。这是我到目前为止所拥有的:
ActiveSheet.Names.Add Name:="Test_sheet_name", RefersTo:=ThisWorkbook.Name & "!" & ThisWorkbook.Names("Test_addin_name").Name
命名范围已正确创建,但很遗憾,它返回我在RefersTo参数后键入的值的“字符串”值。此命名范围的值不是{100,200,300},而是“ WorkbookName ...”。我尝试了不同的方法,但似乎无济于事。
有人可以帮我吗?
RefersTo:=ThisWorkbook.Name & "!" & ThisWorkbook.Names("Test_addin_name").Name
与
"[" & ThisWorkbook.Name & "]ws_test!" & ThisWorkbook.Names("Test_addin_name").RefersTo
有关链接解决方案,请尝试下一个代码。更改外接程序Name
时,它将在您要更新的范围内编写一个公式:
Sub LinkAddinName() Dim sh As Worksheet Set sh = ActiveSheet sh.Range("A1").Formula = "=COUNTA('" & ThisWorkbook.Name & "'!Test_addin_name)" End Sub
代替CountA
,您可以使用使用该范围的任何公式。如果需要类似的范围,则必须为要链接到指定范围的对应单元格的每个单元格编写公式:
Sub LinkAddinNameEachCell() Dim sh As Worksheet, cel As Range Set sh = ActiveSheet For Each cel In ThisWorkbook.Names("Test_addin_name").RefersToRange sh.Range(cel.address).Formula = "='[" & ThisWorkbook.Name & "]ws_test'!" & cel.address Next End Sub