Ich bin immer noch sehr neu in VBA und versuche, meine letzte Spalte (die sich monatlich ändert) mit den Werten in der Spalte davor zu multiplizieren. Was dies (für mich) schwierig macht, ist, dass, sobald dies ausgeführt wird, ich eine weitere Spalte hinzufügen und mit derselben Spalte multiplizieren muss, mit der die vorherige multipliziert wurde. Zum Beispiel: Mein Code führt ein Vlookup in der nächsten verfügbaren Spalte durch, sagen wir, das ist Spalte R. Ich muss dann die Werte in Spalte R mit den Werten in Spalte Q multiplizieren (bis zur letzten Zeile in Spalte R). Ich muss dann ein neues vlookup in Spalte S durchführen, aber immer noch mit den Werten in Q multiplizieren. Auch hier ändern sich die Spalten monatlich. Hier ist mein Code so weit, ich habe es geschafft, die vlookups alles, um herauszufinden, und alles, nur Probleme, meine Spalten mit vorherigen Spalte multipliziert:Excel VBA: Wie multipliziert man die letzte Spalte mit Daten mit der Spalte davor?
Sub vlookup5()
Dim SourceLastRow As Long
Dim OutputLastRow As Long
Dim sourceSheet As Worksheet
Dim outputSheet As Worksheet
Dim NextColumn As Long
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
OutputLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row - 1
.Range(Cells(4, NextColumn), Cells(OutputLastRow, NextColumn)).Formula = _
"=VLOOKUP(D4,'" & sourceSheet.Name & "'!$A$2:$H$" & SourceLastRow & ",6,0)*LastColumn"
.Cells(OutputLastRow + 1, NextColumn).Formula = "=SUM(" & Chr(64 + NextColumn) & "4:" & Chr(64 + NextColumn) & OutputLastRow & ")*1000"
End With
End Sub
Sub vlookup6()
Dim SourceLastRow As Long
Dim OutputLastRow As Long
Dim sourceSheet As Worksheet
Dim outputSheet As Worksheet
Dim NextColumn As Long
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
OutputLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row - 1
.Range(Cells(4, NextColumn), Cells(OutputLastRow, NextColumn)).Formula = _
"=VLOOKUP(D4,'" & sourceSheet.Name & "'!$A$2:$H$" & SourceLastRow & ",7,0)"
.Cells(OutputLastRow + 1, NextColumn).Formula = "=SUM(" & Chr(64 + NextColumn) & "4:" & Chr(64 + NextColumn) & OutputLastRow & ")*1000"
End With
End Sub