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

VBA : Copy all data to another workbook's sheet

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

错误来自这部分:

...
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:"subscript out of range"。
- 我们用的是同一个版本的Excel怎么会发生这种事?
- 是否有其他方法可以做到这一点?

提前致谢。

只是猜测...您在查看文件名的文件夹选项设置中有不同的选项。

在您的 PC 上,选项 Hide extensions for know file types 已选中,因此文件的扩展名在文件名中不可见。因此 Workbooks("GOP_Flow_201704) 无需文件扩展名即可为您工作。

在您朋友的 PC 上,该选项未选中,因此扩展名成为工作簿名称的一部分,类似于 "GOP_Flow_201704.xlsx",因此您需要将扩展​​名添加到名称中...

Workbooks("GOP_Flow_" & _
 Format(DateAdd("m", -1, Date), "yyyy") & _
 Format(DateAdd("m", -1, Date), "mm") & ".xlsx")...
'                                        ^^^^^^^

作为一种解决方案,将文件的扩展名放在名称中 在这两种情况下都有效

p.s。顺便说一句,不要使用 + 进行字符串连接,而是使用 &