Excel VBA:如何把公式放在下一个可用的列中的唯一行数?

我对VBA还是一个新手,并且试图在第4行的下一个可用列中执行一个vlookup,直到vlookup的使用范围结束。 另外,一旦vlookup完成,在下面的行中我需要总结上面单元格中的所有值。 如果这是令人困惑的,这是我到目前为止的代码:

Sub vlookup2() Dim SourceLastRow As Long Dim OutputLastRow As Long Dim sourceSheet As Worksheet Dim outputSheet As Worksheet Set sourceSheet = Worksheets("Data1") Set outputSheet = Worksheets("Pivot") With sourceSheet SourceLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With With outputSheet OutputLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row .Range("*4:*" & OutputLastRow).Formula = _ "=VLOOKUP(D4,'" & sourceSheet.Name & "'!$A$2:$H$" & SourceLastRow & ",3,0)" End With End Sub 

我在哪里“* 4:*”是我想像的地方,我需要把下一个可用列的数据。 之后,我只需要总结该列中的下一个列中的所有内容。 有人可以帮忙吗?

find下一个可用的列,并在范围内插入公式,并在底部进行总结。 如果你的列数大于26,那么你需要修改它。

  Dim SourceLastRow As Long Dim OutputLastRow As Long Dim sourceSheet As Worksheet Dim outputSheet As Worksheet Dim NextColumn As Long Dim ColumnStr As String Dim ColumnStr2 As String Dim ColumnStr3 As String Set sourceSheet = Worksheets("Data1") Set outputSheet = Worksheets("Pivot") With sourceSheet SourceLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With With outputSheet NextColumn = .Cells(4, Columns.Count).End(xlToLeft).Column + 1 If NextColumn + 1 < 27 Then ColumnStr = Chr(64 + NextColumn + 1) Else ColumnStr = Chr(64 + Int((NextColumn + 1) / 26)) & Chr(64 + ((NextColumn + 1) Mod 26)) End If If NextColumn - 1 < 27 Then ColumnStr3 = Chr(64 + NextColumn - 1) Else ColumnStr3 = Chr(64 + Int((NextColumn - 1) / 26)) & Chr(64 + ((NextColumn - 1) Mod 26)) End If If NextColumn < 27 Then ColumnStr2 = Chr(64 + NextColumn) Else ColumnStr2 = Chr(64 + Int((NextColumn) / 26)) & Chr(64 + ((NextColumn) Mod 26)) End If OutputLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row .Range(Cells(4, NextColumn), Cells(OutputLastRow, NextColumn)).Formula = _ "=VLOOKUP(D4,'" & sourceSheet.Name & "'!$A$2:$H$" & SourceLastRow & ",3,0)" & "*" & ColumnStr3 & 4 DoEvents .Cells(OutputLastRow + 1, NextColumn).Formula = "=SUM(" & ColumnStr2 & "4:" & ColumnStr2 & OutputLastRow & ")" End With