我需要将工作表{(1)}中的一列(例如A)复制到工作表ABC
中的另一列说B中。
我一直在使用这段代码:
DEF
这样可以正常工作,但如果之间存在空白值,则不会复制任何其他值。你能帮帮我吗?
我需要工作表Sheets("ABC").Activate
ActiveSheet.Range("A1").Select
ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("DEF").Activate
ActiveSheet.range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False'
中的整个A列位于ABC
非常感谢你的帮助!
答案 0 :(得分:1)
以下代码创建一个包含对源范围的引用的变量,然后将目标范围Value
设置为源范围Value
:
Dim SrcRng As Range
With Worksheets("ABC")
Set SrcRng = .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp))
End With
Worksheets("DEF").Range("B1").Resize(SrcRng.Rows.Count, 1).Value = SrcRng.Value
它还避免使用Select
和Activate
。 (见How to avoid using Select in Excel VBA macros。)