2017-07-25 112 views
0

我需要從圖紙ABC複製一列(說A)到另一列說B在DEFVBA宏複製列從一張到另一張空白在

我一直用這個代碼:

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列中DEF

非常感謝您的幫助!

回答

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。)

+0

謝謝!工作得很好! – Sona123

+0

使用'.EntireColumn'會不會更容易?我會說速度沒有顯着差異(我必須說我沒有測試它),但是讀取代碼更容易。但我讓我證明錯了。 –

+0

@Peh我擔心'Column.Value = Column.Value'可能會很慢。我會給它一個測試,看看會發生什麼。 – YowE3K

相關問題