Ich habe zwei Arbeitsmappen: "TEST" und "Bericht". Ich habe folgenden Code verwendet:
MsgBox Sum_Visible_Cells(Worksheets("Raw Data").Range("M2:M" & LastRow(Worksheets("Raw Data"))))
und es gibt den Summenwert in einer Messagebox zurück. Ich konnte auch die Summe in einer Zelle auf dem Arbeitsblatt "Rohdaten" in der Arbeitsmappe "TEST" zurückgeben.
Wie kann ich Excel dazu bringen, den Wert im Arbeitsblatt "Sheet1", Bereich "L9" in der Arbeitsmappe "Report" zurückzugeben?
Lösung des Problems
Dafür brauchst du kein vba. Geben Sie in der Zelle Sheet1!L9
die Formel ein
=SUBTOTAL(109,'Raw Data'!$M:$M)
Verwenden Sie dazu VBA
Application.Workbooks("Report.xlsm").Worksheets("Sheet1").Range("L9") = "Result of your function"
Hinweis: Sie müssen die Dateierweiterung angeben und die Arbeitsmappe muss geöffnet sein.
BEARBEITEN: Sum_Visible_Cells
ist keine Arbeitsblattfunktion.
versuchen Sie dies (vorausgesetzt, der Code befindet sich in der Arbeitsmappe Test
)
Application.Workbooks("Report.xlsm").Worksheets("Sheet1").Range("L9") = _
Application.WorksheetFunction.Subtotal(109, ThisWorkbook.Worksheets("Raw Data").Columns(13))
Aus Ihrem Kommentar Range("M2:M)
geht hervor, dass Sie Zeile 1 von der Summe ausschließen möchten.
Solange M1
keine numerische Summierung erfolgt, ist die gesamte Spalte in Ordnung. Wenn Zeile 1 numerisch ist und Sie sie ausschließen möchten, versuchen Sie es
Dim rng as Range
With ThisWorkbook.Worksheets("Raw Data")
Set rng =.Range(.Cells(2,13),.Cells(.Rows.Count, 13).End(xlUp))
End With
Application.Workbooks("Report.xlsm").Worksheets("Sheet1").Range("L9") = _
Application.WorksheetFunction.Subtotal(109, rng)
Keine Kommentare:
Kommentar veröffentlichen