2016-04-22 93 views
0

美好的一天。MsgBox(ActiveWorkbook) - 「對象不支持此屬性或方法」

這可能很簡單,但我只想知道。 在我的表格的第一分,我放置在下面的代碼行的開始:

MsgBox (ActiveWorkbook) 

這種線通常會提示工作簿活動狀態(如來電顯示)。當放置在項目的其他部分時,它肯定有效,但不在這裏。相反,出現此錯誤:

Run-time error '438': 

Object doesn't support this property or method 

所以,我只想對這個主題有更多的理解。謝謝。

PS。我將這行代碼放在一個簡單的button_Click()中。

再次感謝。

+1

'ActiveWorkbook'是一個對象,但'MsgBox'想要一個字符串...嘗試:'MsgBox ActiveWorkbook.Name' –

回答

1

我不得不質疑「這樣的行通常會提示工作簿處於活動狀態(如電話所示)」斷言。

MsgBox需要Variant作爲參數,但可以成功轉換爲StringMsgBox$幾乎總是更好的做法)。

ActiveWorkbook返回Workbook對象,並且Workbook不能轉換爲String。我不記得Workbook的默認屬性是什麼,但我知道它不能轉換爲String。如果你想獲得Workbook,你需要這樣的:

MsgBox$ ActiveWorkbook.Name 

您需要任何地方,FormClassModule ......任何地方。

更好的做法是獲得參考到活動Workbook並在整個代碼中使用該參數。見How to avoid using Select in Excel VBA macros

+0

這很好解釋。非常感謝你提供的信息。非常感激。 – TheBSITGuy

相關問題