我已經定義了一個名字:檢索列()全局變量進入VBA
=COLUMN("Sheetname!C10")
比方說,我把它命名爲「myColumn」。
我試圖通過檢索它進入VBA:
x = Worksheets("Sheetname").Range("myColumn").Value
但我發現了一個1004;應用程序定義或對象定義的錯誤。
我試着在VBA使用Excel和CStr的()TEXT()來強制型拐彎,以及
Dim x As String
無濟於事。
其他名稱我沒有麻煩進入VBA(那些沒有ADDRESS()或COLUMN()類型的函數)。
什麼樣的輸出是在Excel的名稱管理器中定義的變量?我如何正確地將其檢索到VBA中?非常感謝!
編輯:想評論,但太長了;
對不起,不清楚。重點是我有一個名稱定義不在任何工作表(如在;沒有'有'這個名字的單元格);它只是名稱管理器中定義的公式。此名稱隨後在具有INDIRECT()的Excel公式中使用。
現在,我想在VBA中使用這些列。如果我定義另一個名稱,以便它是指小區C10:
=Sheetname!C10
,並命名爲myColumnCell
然後我可以在VBA使用:
x = Worksheets("Sheetname").Range("myColumnCell").Column
MsgBox x
工作正常。但是它需要我創建一個額外的名稱,即使我已經有一個名稱只定義了列。
我可以做到這一點,但我有一大堆這些,所以我想知道是否有辦法做到這一點,而無需創建更多的名稱。
如果沒有其他辦法,只能在工作表上爲單元格指定一個單元格,就像@Daniel所說的那樣,我只需要使用它。
編輯;替換「var」是因爲我實際上並沒有使用它,因此將其輸入爲一個(不幸的)示例名稱。
的'COLUMN'函數返回一個數,所以'範圍(3).Value'是要失敗。 –
實際上,這比我說的要糟糕。你的名字實際上並不等同於一個範圍。換句話說,沒有稱爲「var」的範圍,只是名爲「var」的名稱等於3.如果您稍微多說一下它將如何使用,那將會有所幫助。你真的需要在表中命名的範圍,還是隻是在VBA中使用? –
你真的需要什麼?引用列對象或特定單元格的值的變量? – bonCodigo