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)" 的说法。
MsgBox
将 Variant
作为参数,但可以成功转换为 String
的参数(MsgBox$
几乎总是更好的做法)。
ActiveWorkbook
returns 一个 Workbook
对象,并且 Workbook
不能转换为 String
。我不记得 Workbook
的默认 属性 是什么,但我知道它不能转换为 String
。如果你想获得 Workbook
的 name,你需要这个:
MsgBox$ ActiveWorkbook.Name
你在任何地方都需要它,Form
、Class
、Module
、...任何地方。
更好的做法是获得对活动 Workbook
的 引用 并在整个代码中使用它。参见 How to avoid using Select in Excel VBA macros。
美好的一天。
这可能很简单,但我只是想知道。 在我的表单的第一个 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)" 的说法。
MsgBox
将 Variant
作为参数,但可以成功转换为 String
的参数(MsgBox$
几乎总是更好的做法)。
ActiveWorkbook
returns 一个 Workbook
对象,并且 Workbook
不能转换为 String
。我不记得 Workbook
的默认 属性 是什么,但我知道它不能转换为 String
。如果你想获得 Workbook
的 name,你需要这个:
MsgBox$ ActiveWorkbook.Name
你在任何地方都需要它,Form
、Class
、Module
、...任何地方。
更好的做法是获得对活动 Workbook
的 引用 并在整个代码中使用它。参见 How to avoid using Select in Excel VBA macros。