我让用户在尝试使用宏时收到错误消息。
代码中有两个位置使用此命令:
Public Function GenerateList(ByVal TargetRow, ByVal TargetColumn)
Dim DateRange As String, LocationLost As Integer, LocationName As String, SearchRow As Integer, PasteRow As Integer, MainWkbk As Workbook, NextWkbk As Workbook
Set MainWkbk = ActiveWorkbook
SearchRow = 2
PasteRow = 2
以及稍后在我创建新工作簿的代码中:
Dim Aname As String
Const csPath As String = "location path redacted"
Aname = "Gaps" & LocationName & DateRange
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=csPath & Aname & ".xls"
Set NextWkbk = ActiveWorkbook
遇到错误的用户不在我的位置,因此我让他们共享桌面并观看他们逐步完成代码。宏一直到第二个工作簿Set命令没有错误。因此,第一个Set命令适用于它们,但第二个不适用。
他们的软件没有开发人员选项卡,但编辑器提出了键盘命令。
关于为什么第二个Set命令在相同(基本上)Set命令在代码中较早工作时会产生错误的任何想法?
答案 0 :(得分:0)
如果您在创建对象变量后立即将新工作簿分配给对象变量,那么您根本不需要依赖ActiveWorkBook
Set NextWorkbook = Workbooks.Add
NextWorkbook.SaveAs Filename:=csPath & Aname & ".xls"
http://msdn.microsoft.com/en-us/library/office/aa221273(v=office.11).aspx