2017-02-14 103 views
0

您好,我有一個簡單的VBA代碼,它複製一列並將其粘貼到另一列,而不包含原始列中的空單元格。它在我寫的woorkbook中工作。但是我把它複製到另一個,我需要它的地方。它不止一次複製需要的單元格,並將整個列填入這些值。VBA代碼在不同工作簿中的工作方式不同

Range("f5:f2500").ClearContents        

With Range("d5:d2500")          

    .Offset(, 0).SpecialCells(xlCellTypeFormulas, _ 
    xlNumbers).Copy             
    .Offset(, 2).PasteSpecial skipblanks:=True, _    
    Paste:=xlPasteValues            

End With 

回答

2

Sub下面將複製式(與細胞的值)從塔d,並粘貼它們的值F列,來自Cell「F5」開始和向下(無空白)。

Sub收到Worksheet.Name作爲參數,因此裏面的所有Range都完全符合該特定工作表的名稱。

代碼

Option Explicit 

Sub CopyColumnWOBlanks(wsName As String) 

With Worksheets(wsName) 
    .Range("F5:F" & .Cells(.Rows.Count, "F").End(xlUp).Row).ClearContents 

    .Range("D5:D" & .Cells(.Rows.Count, "D").End(xlUp).Row).SpecialCells(xlCellTypeFormulas, xlNumbers).Copy 
    .Range("F5").PasteSpecial Paste:=xlPasteValues, skipblanks:=True 
End With 

End Sub 

下面這Main子,只是爲了測試,修改以滿足您的需求。

Sub Main() 

CopyColumnWOBlanks ("Sheet5") ' <-- change "Sheet5" to whatever worksheet you want the macro to run 

End Sub 
相關問題