在某些PC上设置xxxx = ActiveWorkbook错误,而不是其他PC

时间:2014-08-21 21:14:07

标签: vba object excel-2007

我让用户在尝试使用宏时收到错误消息。

  1. 宏功能为我自己和8个测试它的人。
  2. 我们都在Win7上,包括收到错误的人。我们都在使用Office 2007,包括收到错误的人。
  3. 代码中有两个位置使用此命令:

    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
    
  4. 以及稍后在我创建新工作簿的代码中:

        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命令在代码中较早工作时会产生错误的任何想法?

1 个答案:

答案 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