很简单,我想知道将单元格值从一个工作表复制到另一个工作表的最快方法是什么.
通常,我将按列和/或行循环遍历单元格,并使用如下行:
Worksheets("Sheet1").Cells(i,j).Value = Worksheets("Sheet1").Cells(y,z).Value
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我的范围不是连续的行/列(例如,我想避免覆盖已经包含数据的单元格),我要么在循环内部有一个条件,要么我将用行和列填充一个数组我希望循环的数字,然后遍历数组元素.例如:
Worksheets("Sheet1").Cells(row1(i),col1(j)).Value = Worksheets("Sheet2").Cells(row2(y),col2(z)).Value
Run Code Online (Sandbox Code Playgroud)
难道是用快我想复制的细胞和目标细胞定义范围,然后做一个Range.Copy
和Range.Paste
操作?是否可以使用数组定义范围而无需循环遍历它?或者无论如何循环数组以定义范围然后复制粘贴范围而不是通过循环等同单元格值会更快吗?
我觉得可能根本不可能复制和粘贴这样的范围(即它们需要通过矩形阵列连续的单元格并粘贴到相同大小的矩形阵列中).话虽这么说,我认为可以将两个范围的元素等同,而不会遍历每个单元格并使值等于.