【发布时间】:2021-11-20 08:41:40
【问题描述】:
我想尝试将 Range(K-AT) 和 PasteRange(1-6) 写成两行代码,以缩短我的代码。如何使用数组做到这一点?
Set RangeK = .Range("K2", "K" & LastRow)
Set RangeD = .Range("D2", "D" & LastRow)
Set RangeW = .Range("W2", "W" & LastRow)
Set RangeX = .Range("X2", "X" & LastRow)
Set RangeZ = .Range("Z2", "Z" & LastRow)
Set RangeAT = .Range("AT2", "AT" & LastRow)
Set PasteRange1 = .Range("A3", "A" & LastRow)
Set PasteRange2 = .Range("B3", "B" & LastRow)
Set PasteRange3 = .Range("C3", "C" & LastRow)
Set PasteRange4 = .Range("D3", "D" & LastRow)
Set PasteRange5 = .Range("E3", "E" & LastRow)
Set PasteRange6 = .Range("F3", "F" & LastRow)
RangeK.Copy
PasteRange1.PasteSpecial xlPasteValues
RangeD.Copy
PasteRange2.PasteSpecial xlPasteValues
RangeW.Copy
PasteRange3.PasteSpecial xlPasteValues
RangeX.Copy
PasteRange4.PasteSpecial xlPasteValues
RangeZ.Copy
PasteRange5.PasteSpecial xlPasteValues
RangeAT.Copy
PasteRange6.PasteSpecial xlPasteValues
【问题讨论】:
-
为什么需要 6 个单独的变量?
-
@Rory,因为我需要从不同工作表的不同列粘贴。为了您更好地理解,我在上面包含了更多我的代码。
-
您只需要第一个目标单元格进行粘贴,您可以使用一个变量:
Set PasteRange = .Range("A3:F3")然后使用PasteRange.Cells(1)作为第一个粘贴目标。您也可以使用变量并在循环中执行。