引用其他工作簿对大多数工作,但得到两个机器的“下标超出范围”错误

我有一个由70人使用的文件(相同的文件,每个团队都有自己的地理区域副本)。 这个文件适用于68人。 当两个不工作login在不同的机器上,它的工作原理。 我看不到任何设置上的差异。 “忽略其他应用程序..”未勾选,另一个文件在Excel的同一个实例中打开。

以下是代码的摘录。 该文件打开确定,但是当它到达With Workbooks("Master")....它会得到一个“下标超出范围”错误。 我试过不用“With”语句,但是没有帮助。

我可以遍历所有其他的代码,这只是引用“主”工作簿错误(并在其他68台机器上工作正常)的行。

  If IsAlreadyOpen("Master.xlsm") = False Then Workbooks.Open (filepath), ReadOnly:=False, UpdateLinks:=False, Password:="password here" Else Workbooks("Master.xlsm").Activate End If With Workbooks("Master").Sheets("This Sheet") .Cells.EntireRow.Hidden = False .Cells.EntireColumn.Hidden = False .AutoFilterMode = False End With 

有人可以提出任何解决办法吗?

这将是一个适当的地方使用对象variables(来表示一个Workbook对象),而不是依靠Activate方法。 请注意,如果您依赖于ActiveWorkbook或不合格的Sheets ,则可能需要在其他地方进行修改。

  Dim wbMaster as Workbook If Not IsAlreadyOpen("Master.xlsm") Then Set wbMaster = Workbooks.Open(filepath, ReadOnly:=False, UpdateLinks:=False, Password:="password here") Else: Set wbMaster = Workbooks("Master.xlsm") End If With wbMaster.Sheets("This Sheet") .Cells.EntireRow.Hidden = False .Cells.EntireColumn.Hidden = False .AutoFilterMode = False End With