簡體   English   中英

如何將范圍鏈接復制到插件工作表,然后從中創建一個命名范圍?

[英]How to copy range links to addin worksheet and then create a named range from it?

是否可以將選定的范圍(使用鏈接復制?)鏈接到插件工作表,然后在該插件工作簿中創建一個命名范圍,然后最后創建一個命名范圍,它引用存儲在插件中的命名范圍?

例如,我有以下數據:

在此處輸入圖像描述

我正在嘗試使用指向插件工作表的鏈接來復制它。 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM