首页 > 解决方案 > 复制粘贴使用范围的列

问题描述

我编写了一个运行良好的代码,但它复制了整个列而不是使用的范围。

有人可以在这方面帮助我。我已经尝试过使用lastrow但不知道如何执行此操作,如果我想添加更多列,那么请分享一下如何完成。

或者有没有更好的方法来做到这一点,请分享。

你的帮助对我来说意义重大。

lastrow = totalWS.Cells(totalWS.Rows.Count, 1).End(xlUp).Row

    Sheet1.Columns(1).Copy
Sheet3.Columns(1).PasteSpecial xlPasteValues
Sheet1.Columns(2).Copy
Sheet3.Columns(2).PasteSpecial xlPasteValues
Sheet1.Columns(4).Copy
Sheet3.Columns(4).PasteSpecial xlPasteValues
Sheet1.Columns(5).Copy
Sheet3.Columns(5).PasteSpecial xlPasteValues
Sheet1.Columns(6).Copy
Sheet3.Columns(6).PasteSpecial xlPasteValues
Sheet1.Columns(7).Copy
Sheet3.Columns(7).PasteSpecial xlPasteValues
End Sub

标签: excelvba

解决方案


Sub test()
    Dim vDB
    Dim Ws As Worksheet, toWs As Worksheet
    Dim arr As Variant
    Dim i As Integer
    
    Set Ws = Sheets(1)
    Set toWs = Sheets(3)
    
    arr = Array(1, 2, 4, 5, 6, 7)
    For i = 0 To UBound(arr)
        With Ws
            vDB = .Range(.Cells(1, arr(i)), .Cells(Rows.Count, arr(i)).End(xlUp))
        End With
        toWs.Cells(1, arr(i)).Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
    Next i

End Sub

推荐阅读