将包含指定行数据的最后一列复制到下一个空白列

K20*_*0GH 5 excel vba excel-vba

我有一个电子表格,我需要查找包含数据的最后一列.然后我需要复制此列并将其复制到下一个空白列.

有没有办法做到这一点?

我已设法使用以下行来执行以下操作:

lastrowSrc = Sheets("Overview").Range("B" & Rows.Count).End(xlUp).Row
Run Code Online (Sandbox Code Playgroud)

但是这会将B12放在范围内,使用columns.count只需输入列的编号,而不是字母

Sid*_*out 6

要获取工作表中的确切列,请使用此代码.

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim LastCol As Long

    Set ws = Sheets("Sheet1")

    '~~> This check is required else .FIND will give you error on an empty sheet
    If Application.WorksheetFunction.CountA(ws.Cells) = 0 Then
        LastCol = 1
    Else
        LastCol = ws.Cells.Find(What:="*", _
                After:=ws.Range("A1"), _
                Lookat:=xlPart, _
                LookIn:=xlFormulas, _
                SearchOrder:=xlByColumns, _
                SearchDirection:=xlPrevious, _
                MatchCase:=False).Column
    End If

    Debug.Print LastCol
End Sub
Run Code Online (Sandbox Code Playgroud)

编辑:这是礼貌的@brettdj.您还可以使用范围对象查找最后一列

Option Explicit

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

    Set ws = Sheets("Sheet1")

    Set rng = ws.Cells.Find(What:="*", _
                After:=ws.Range("A1"), _
                Lookat:=xlPart, _
                LookIn:=xlFormulas, _
                SearchOrder:=xlByColumns, _
                SearchDirection:=xlPrevious, _
                MatchCase:=False)

    If rng Is Nothing Then
        LastCol = 1
    Else
        LastCol = rng.Column
    End If

    Debug.Print LastCol
End Sub
Run Code Online (Sandbox Code Playgroud)

要获取特定行的最后一列,请说第1行使用此行

    Debug.Print ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
Run Code Online (Sandbox Code Playgroud)

哪些是您的相关工作表.

对于Row也是如此.