我相信这对某人来说很快。我发现了一些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
我觉得我有正确的想法,但我不知道如何实施它。任何帮助和解释都会非常感激,因为我非常渴望学习。
提前致谢
答案 0 :(得分:0)
声明所有变量。
不要设置长。
将工作表分配给所有Range对象。
sudo apt-get install r-cran-dplyr