在sheet1中我想复制列a,c,d,g的值并将其粘贴到第a,b,c,d列中的sheet2底部
我一直很难用这个,因为a,c,d,g的列包含公式,所以当我使用复制/目标方法时,它最终会破坏宏。
答案 0 :(得分:1)
我个人会使用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
答案 1 :(得分:0)
在相关范围内使用粘贴特殊方法。请参阅the Microsoft help resource上的链接。 您将需要修饰符xlPasteValues。
答案 2 :(得分:0)
我可以想到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