Excel VBA – 将不相邻的范围复制到不同的非相邻范围

我正在寻找通过一个循环的数据,并从一张纸复制到另一个单元格。 使用“longhand”我可以得到以下工作:

Sub Update() Dim Template As Worksheet: Set Template = Worksheets("ImportTemplate") Dim Master As Worksheet: Set Master = Worksheets("Master") Dim a As Long, x As Long With Master For a = 2 To .Range("A" & Rows.Count).End(xlUp).Row Select Case .Range("A" & a).Value Case "S" x = Template.Range("A" & Rows.Count).End(xlUp).Row + 1 Template.Range("A" & x).Value = .Range("E" & a).Value 'Site Details Template.Range("B" & x).Value = .Range("AO" & a).Value 'Meter Details Case "M" Case "C" Case Else End Select Next a .Select End With End Sub 

有没有更好的方法呢? 将有更多的细胞更新,所以它不限于例如显示的2

你可以包括

 ' at the start Dim priorCalculationSetting as Long Application.ScreenUpdating = False priorCalc = Application.Calculation Application.Calculation = xlCalculationManual ...your code here... ' at the end Application.ScreenUpdating = True Application.Calculation = priorCalculationSetting