Excel VBA – 简化logging代码时的运行时错误1004

我有一个录制的macros,我尝试通过在一行中获取一些激活和select语句来简化,但这会导致运行时错误。

这不是一个严重的问题,但我只是好奇,想知道发生了什么事情。 这是我最初的代码片段(它在过程中的前面是一个复制代码片段):

ThisWorkbook.Activate Sheets("MS Act Report").Select Range("G1").Select ActiveSheet.Paste 

这是我的简化代码:

 ThisWorkbook.Activate Sheets("MS Act Report").Range("G1").Select ActiveSheet.Paste 

当运行这个我得到一个

runtime error '1004': Select method of Range class failed

您只能在活动工作表上select范围。 如果“MS Act Report”不是活动工作表,则不能针对其单元发出.select命令。 为了简化代码,而不是复制粘贴,只需使范围相等。

 Thisworkbook.WorkSheets("MS Act Report").Range("G1:I5").Value= _ ActiveWorkbook.Worksheets("Whatever").Range("a1:c5").Value 

一些推荐阅读: 如何避免使用select