Excel中工作簿之间复制多个单元格的最佳方法是什么?

我在一个工作表上有一个“窗体”,在窗体中有9个单元格用于在范围F1F9input数据。

然后我想从那些单元格中的数据复制到第二页上的一行。 我有一个logging的macros这样做,但它需要大约45秒的时间来处理。 它会手动select每个工作表,然后在新行中进行复制/粘贴操作。 有一个更好的方法来做到这一点。

这是代码的一部分:

 Sheets("INBOUND").Select Range("b3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("TAG").Select Range("f7").Select Application.CutCopyMode = False Selection.Copy Sheets("INBOUND").Select Range("c3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("TAG").Select Range("f9").Select Application.CutCopyMode = False 

试试这个Subroutine

 Sub ValuesCopy() Dim sourceSheet As Worksheet Dim destinationSheet As Worksheet Dim sourceRanges As Variant Dim destinationRanges As Variant Dim i As Long Set sourceSheet = Sheets("TAG") 'Set to source sheet Set destinationSheet = Sheets("INBOUND") 'set to destination sheet sourceRanges = Array("F5", "F7", "F9") 'Enter ranges here. Must have the same number as destination. destinationRanges = Array("A3", "B3", "C3") 'Enter ranges here. Must have the same number as source. 'loops through arrays of ranges and copying values For i = 0 To UBound(sourceRanges) destinationSheet.Range(destinationRanges(i)) = sourceSheet.Range(sourceRanges(i)) Next i End Sub 

这是一个很好的,通用的方法来做你想做的事情。