MsgBox(活动工作簿)- "Object doesn't support this property or method"

MsgBox (ActiveWorkbook) - "Object doesn't support this property or method"

美好的一天。

这可能很简单,但我只是想知道。 在我的表单的第一个 Sub 中,我在代码的最开头放置了以下行:

MsgBox (ActiveWorkbook)

这样的行通常会提示工作簿处于活动状态(如调用所示)。当放在项目的其他部分时,它肯定可以工作,但在这里不行。相反,出现此错误:

Run-time error '438':

Object doesn't support this property or method

所以,我只是想对这个主题有更多的了解。谢谢

PS。我放置那行代码的子程序是一个简单的 button_Click().

再次感谢。

我不得不质疑 "Such line would usually prompt the workbook active (as the call suggests)" 的说法。

MsgBoxVariant 作为参数,但可以成功转换为 String 的参数(MsgBox$ 几乎总是更好的做法)。

ActiveWorkbook returns 一个 Workbook 对象,并且 Workbook 不能转换为 String。我不记得 Workbook 的默认 属性 是什么,但我知道它不能转换为 String。如果你想获得 Workbookname,你需要这个:

MsgBox$ ActiveWorkbook.Name

你在任何地方都需要它,FormClassModule、...任何地方。

更好的做法是获得对活动 Workbook 引用 并在整个代码中使用它。参见 How to avoid using Select in Excel VBA macros