在 sheet1 中,我想复制 a、c、d、g 列的值并将其粘贴到 sheet2 底部的 a、b、c、d 列中
我一直很难解决这个问题,因为 a、c、d、g 的列包含公式,所以当我使用复制/目标方法时,它最终会破坏宏。
在 sheet1 中,我想复制 a、c、d、g 列的值并将其粘贴到 sheet2 底部的 a、b、c、d 列中
我一直很难解决这个问题,因为 a、c、d、g 的列包含公式,所以当我使用复制/目标方法时,它最终会破坏宏。
就我个人而言,我会使用 copy 和 pastespecial,因为这样您就可以选择仅粘贴值或格式化。但是,如果您不喜欢该路线,您也可以将列中的值分配给数组并将其粘贴。
这是一个如何解决此类问题的示例:
Sub test()
Dim colA As Variant
Dim colB As Variant
Dim colC As Variant
Dim lrow As Long
'putting the ranges into arrays
With Sheets(1).UsedRange
colA = .Columns("A")
colB = .Columns("B")
colC = .Columns("C")
End With
'putting arrays back into ranges
'note the use of resize to fit the target range with arrays
With Sheets(2)
lrow = .UsedRange.Rows.Count + 1
.Range("A" & lrow).Resize(UBound(colA, 1), 1) = colA
.Range("B" & lrow).Resize(UBound(colB, 1), 1) = colB
.Range("C" & lrow).Resize(UBound(colC, 1), 1) = colC
End With
End Sub
在有问题的范围内使用特殊粘贴方法。请参阅Microsoft 帮助资源中的链接。您将需要修饰符 xlPasteValues。
我能想到 3 种方法,基本上都使用复制/粘贴
使用rwtwm建议的方法。示例代码是
Sheets("Sheet1").Range("A1:A10").Copy
Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
复制值
Sheets("Sheet2").Range("A1:A10").Value = _
Sheets("Sheet1").Range("A1:A10").Value
将数据复制到数组中,然后使用该数组将该数组复制到另一张表中
Dim MyData
MyData = Sheets("Sheet1").Range("A1:A10")
Sheets("Sheet2").Range("A1:A10") = MyData