引用其他工作簿对大多数工作,但得到两个机器的“下标超出范围”错误
我有一个由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