簡體   English   中英

使用 vba 將數據復制到最后使用的列

[英]Copy data up to last used column with vba

我成功地使用 VBA 將數據復制到最后使用的行。 我正在嘗試做同樣的事情,但將數據從 A1 復制到 LastColumn2。 這是我到目前為止放在一起的代碼:

Sheets("Results").Select
LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1:" & LastColumn & "2").Select
Selection.Copy

調試器突出顯示第三行。 這只是代碼的一部分 - 所有變量都已正確標注尺寸。

您收到錯誤是因為LastColumn是數字。 您需要與它等效的字符串,即列名。 進一步閱讀

避免使用.Select並完全限定您的對象。 有趣的閱​​讀

這是你正在嘗試的嗎?

Sub Sample()
    Dim ws As Worksheet
    Dim rng As Range
    Dim LastCol As Long
    Dim LastColumn As String

    Set ws = ThisWorkbook.Sheets("Results")

    With ws
        LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column

        '~~> Return column name from number
        LastColumn = Split(.Cells(, LastCol).Address, "$")(1)

        Set rng = .Range("A1:" & LastColumn & "2")

        Debug.Print rng.Address

        rng.Copy
    End With
End Sub

問題是您傳遞的范圍是錯誤的,因為它正在等待類似以下內容:

Range("A1:C2").Select

你正在通過:

Range("A1:32").Select

所以你可以做的是:

Range(cells(1,1),cells(2,lastcolumn)).Select

Cell(1,1) = A1 因為它是行號 1 列號 1

如上所述,如果你只是更好

Range(cells(1,1),cells(lastcolumn,2)).copy

希望它有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM