MsgBox(ActiveWorkbook) – “对象不支持此属性或方法”

美好的一天。

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

MsgBox (ActiveWorkbook) 

这样的行通常会提示工作簿处于活动状态(如电话所示)。 当放置在项目的其他部分,当然有效,但不在这里。 相反,这个错误出现:

 Run-time error '438': Object doesn't support this property or method 

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

PS。 我将这行代码放在一个简单的button_Click()。

再次感谢。

我不得不质疑“这样的行通常会促使工作簿激活(如电话所示)”断言。

MsgBoxVariant作为参数,但是可以成功地将其转换为StringMsgBox$几乎总是更好的做法)。

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

 MsgBox$ ActiveWorkbook.Name 

你需要的地方, FormClassModule ,…任何地方。

更好的做法是获得对活动Workbook引用 ,并在整个代码中使用它。 请参阅如何避免在Excel VBAmacros中使用select 。