基本上,我正在尝试优化在动态范围内复制值的过程。
这是我目前拥有的并且可以正常工作:
trial_copy.opus
我想用更快的方法代替迭代,例如:
For i = 0 To 6
Worksheets("S").Cells(wstaty, (4 + i)).Value = Worksheets("B").Cells(id, (13 + i)).Value
Next i
但是当我尝试:
Range("A1:A5").Value = Range("B1:B5").Value
我知道
运行时错误1004
所以我已经分解了语句以找出问题所在,所以我有:
Worksheets("S").Range(Cells(wstaty, 4), Cells(wstaty, 10)).Value = Worksheets("B").Range(Cells(id, 13), Cells(id, 19)).Value
并且调试器说Set 2行发生错误,这对我来说意义不大
(变量ID始终> 2)
答案 0 :(得分:0)
Cells(…)与当前工作表相关。因此,为了安全起见,最好始终使用全名来查找范围。在您的示例中,将是
Worksheets("B").Range(Worksheets("B").Cells(…), Worksheets("B").Cells(…))
等
为避免冗长的代码,我建议为工作表使用变量。