无法在XLAM Excel-AddIn中的ActiveWorkbook中选择Sheet

时间:2014-06-26 11:23:47

标签: vba

我正在尝试在ActiveWorkbook中调用工作表(调用宏的工作表)。它似乎选择了工作表,但当我尝试打印出ActiveSheet名称时却没有。

ActiveWorkbook.Worksheets("Query Tables").Activate ' Select has the same result as Activate
MsgBox ActiveWorkbook.Sheets("Query Tables").Name
MsgBox ActiveWorkbook.Name & vbTab & ActiveSheet.Name

这就是我从工作簿中调用加载项中的Sub的方法。

Application.Run "QTAnalyser.xlam!MyMacro()"

我做错了什么?

2 个答案:

答案 0 :(得分:0)

.xlam文件的工作簿和Worsheet对象可能未激活,因为它们不应该可供Excel用户界面访问。

像这样修改你的代码:

Call Application.Workbooks("MyAddIn.xlam").Activate
Call ActiveWorkbook.Worksheets("Query Tables").Activate
MsgBox ActiveWorkbook.Sheets("Query Tables").Name
MsgBox ActiveWorkbook.Name & vbTab & ActiveSheet.Name

其中" MyAddIn.xlam"应该更改为您的文件名。

稍后修改

ActiveASheet属性可能会链接到ApplicationWindowWorkbook对象。要解决这种歧义,请尝试:

Call Application.ActiveWorkbook.Worksheets("Query Tables").Activate
MsgBox Application.ActiveWorkbook.Sheets("Query Tables").Name
MsgBox Application.ActiveWorkbook.Name & vbTab & Application.ActiveSheet.Name

答案 1 :(得分:0)

找到我自己的答案,这是括号!!!

“Application.Run”QTAnalyser.xlam!MyMacro()“运行宏两次,以及不选择表格

这解决了它:

Application.Run“QTAnalyser.xlam!MyMacro”

我不确定为什么它会产生这种效果,但即使你有一个明显的参数,你也不应该使用括号