VBA宏复制列从一个工作表到另一个工作表之间有空白

时间:2017-07-25 07:20:03

标签: vba excel-vba copy excel

我需要将工作表{(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

中的B列

非常感谢你的帮助!

1 个答案:

答案 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

它还避免使用SelectActivate。 (见How to avoid using Select in Excel VBA macros。)