excel - 如何将范围链接复制到插件工作表,然后从中创建一个命名范围?
问题描述
是否可以将选定范围(使用链接复制?)链接到插件工作表,然后在该插件工作簿中创建一个命名范围,然后最后创建一个命名范围,该命名范围引用存储在插件中的命名范围?
例如,我有以下数据:
我正在尝试使用指向插件工作表的链接来复制它。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
推荐阅读
- makefile - 摆脱 Rhapsody 中接口的空 cpp 文件
- laravel - 如何在 Laravel Nova 中上传资源文件时将文件哈希(md5)保存到数据库?
- bash - 从数据文件中提取数据
- arrays - 如何根据双嵌套数组中的属性过滤数组的元素
- angular - 角度上可观察到的不是平行工作
- asp.net - Summernote回调图片上传完成,但Form再次提交post请求文件
- python-3.x - 如何过滤数组中不需要的值以进行绘图?使用 numpy 数组的 matplotlib 中的 ValueError
- c# - 如何在没有 URI 编码的情况下将垂直线放入 http GET 请求
- c - 一个简单的附加分支会导致令人讨厌的性能下降
- java - 在一个场景中加载两个不同的 FXML 文件