2015-05-29 110 views
0

如果我想引用Excel VBA中活動工作簿中的範圍,則可以說「With Range(」Myrange「)」。我不需要工作表名稱。在不指定工作表的情況下指定工作簿中的範圍

有時我想參考另一個工作簿中的範圍。 「使用MyWorkbook.Range(」Myrange「)」不起作用,因爲我必須指定範圍所在的工作表。「

有沒有任何方法可以在工作簿中引用範圍而無需說明哪個工作表範圍在?

+0

MyWorkbook or ThisWorkBook.ActiveSheet? –

+0

否,除非您的意思是該工作簿中的哪個工作表處於活動狀態,在這種情況下工作簿具有'ActiveSheet'屬性。 (代碼怎麼可能知道你的意思是哪個範圍?) – Rory

+0

Alex和Rory,Excel必須知道如何找到範圍,因爲如果我在工作簿中的任何工作表的單元格中鍵入「= MyRange」,Excel可以找到即使MyRange所在的工作表不活動。 – Zajonc

回答

2

如果您創建一個命名範圍並將其範圍擴展到工作簿,則可以使用以下命令在任何工作簿中獲取一個命名範圍。如果找不到名稱,顯然會出現錯誤。

wb.Names("Myrange").RefersToRange 
+0

剛試過兩個打開的工作簿,都有一個名爲「MyRange」的範圍,並且每次都得到正確的一個。謝謝你Sobigen。 – Zajonc

0

是的,在您的工作簿中創建一個命名範圍(例如:MyRangeName)。然後在您的代碼中使用Range("MyRangeName"),無論您正在查看哪個工作簿,它都會引用該表單上的那些單元格。

+0

謝謝FreeMan,但是如果我打開兩個工作簿,並且每個工作簿都定義了相同的範圍名稱,則VBA會因對象'_Global'失敗'的方法'範圍'失敗,因爲它不知道要使用哪一個。 – Zajonc

相關問題