VBA:将所有数据复制到另一个工作簿的工作表

时间:2017-05-16 13:32:14

标签: excel vba excel-vba runtime-error excel-2007

我有一个在我的电脑上运行良好的宏,但不在我朋友的电脑中,这是我以前从未见过的。

错误来自这部分:

...
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,这种事情怎么会发生? - 有替代方法吗?

提前谢谢。

1 个答案:

答案 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。顺便说一句,不要使用+进行字符串连接,而是使用&