更改宏中的最后一行值

时间:2017-12-01 16:43:45

标签: excel vba

我相信这对某人来说很快。我发现了一些VBA代码可以实现我想要的功能,我只是希望它将最后一行引用到A列的最后一行而不是当时正在查看的任何列。

以下是原始代码。

Private Sub CopyHeaders()
Dim header As Range, headers As Range
Set headers = Worksheets("FPS").Range("A1:BK1") '

For Each header In headers
    If GetHeaderColumn(header.Value) > 0 Then
        Range(header.Offset(1, 0), header.End(xldown)).Copy Destination:=Worksheets("TempTable").Cells(2, GetHeaderColumn(header.Value))
    End If
Next
End Sub

这是我的尝试。

Private Sub CopyHeaders()
Dim header As Range, headers As Range
Dim LastRow As Long
Set headers = Worksheets("FPS").Range("A1:BK1") '

rowlast = Worksheets("FPS").Cells(Rows.Count, "A").End(xlUp).Row

For Each header In headers
    If GetHeaderColumn(header.Value) > 0 Then
        With Worksheets("FPS")
            .Range(.Cells(header.Row + 1, header.Column), .Cells(rowlast, headercolumn)).Copy Destination:=Worksheets("TempTable").Cells(2, GetHeaderColumn(header.Value))
        End With
    End If
Next
End Sub

Function GetHeaderColumn(header As String) As Integer
    Dim headers As Range
    Set headers = Worksheets("TempTable").Range("A1:Y1")
    GetHeaderColumn = IIf(IsNumeric(Application.Match(header, headers, 0)), Application.Match(header, headers, 0), 0)
End Function

我觉得我有正确的想法,但我不知道如何实施它。任何帮助和解释都会非常感激,因为我非常渴望学习。

提前致谢

1 个答案:

答案 0 :(得分:0)

声明所有变量。

不要设置长。

将工作表分配给所有Range对象。

sudo apt-get install r-cran-dplyr