我有一个在我的电脑上运行良好的宏,但不在我朋友的电脑中,这是我以前从未见过的。
错误来自这部分:
...
Workbooks("GOP_Flow_" + Format(DateAdd("m", -1, Date), "yyyy") + Format(DateAdd("m", -1, Date), "mm")).Worksheets(1).UsedRange.Copy
main.Worksheets(2).Range("A1").PasteSpecial (xlPasteValues)
...
运行时错误9:"下标超出范围"在复印线上。
- 由于我们使用相同版本的Excel,这种事情怎么会发生?
- 有替代方法吗?
提前谢谢。
答案 0 :(得分:1)
只是猜测......您在文件夹选项设置中有不同的选项来查看文件名。
在您的PC上,选中Hide extensions for know file types
选项,因此文件的名称中不会显示文件的扩展名。因此,Workbooks("GOP_Flow_201704)
适用于您而没有文件扩展名。
在您朋友的电脑上,未选中此选项,因此该扩展程序会成为工作簿名称的一部分,例如"GOP_Flow_201704.xlsx"
,因此您需要将扩展名添加到名称中... < / p>
Workbooks("GOP_Flow_" & _
Format(DateAdd("m", -1, Date), "yyyy") & _
Format(DateAdd("m", -1, Date), "mm") & ".xlsx")...
' ^^^^^^^
作为解决方案,将文件的扩展名放在名称中。
P.S。顺便说一句,不要使用+
进行字符串连接,而是使用&
。