VBA-return sum of range Werte aus anderen Arbeitsmappe
Ich versuche mit VBA in einem excel-Tabellenblatt (nennen wir es wbA) zu finden, die Summe der Werte in einem Zellbereich in einer anderen Arbeitsmappe (nennen, die wbB). Ich habe versucht, mit Hilfe eines maßgeschneiderten Summen-Funktion
Function sumrange(rng As Range)
summ = 0
For Each cell In rng
summ = summ + cell.Value
Next
sumrange = summ
End Function
welche ich auszuführen in der wbA-hier
Sub test4()
Dim app As New Excel.Application
Dim book As Excel.Workbook
Set book = app.Workbooks.Add("...\wbB.xlsm")
With book.Worksheets("November2013")
a = sumrange(Range("B5:T9"))
End With
MsgBox a
End Sub
Diese gibt die Summe der set-Angebot in der wbA statt wbB
ich habe auch versucht die worksheetfunction.Summe option in den folgenden Formaten
l = book.Worksheets("November2013").Application.WorksheetFunction.Sum(Range(B5:T9"))
und
With book.Worksheets("December2014")
p = Application.WorksheetFunction.Sum(Range(B5:T9"))
End With
aber beide caluclate und return die Summe der Reihe von wbA statt von wbB
Wie Schreibe ich den code zu finden, der die Summe der Reihe in wbB
Dank
Birdsview: Ändern
immer ein "argument ist nicht optional" Fehler
Welche Linie? BTW sind Sie mit diesem innerhalb von excel?
geändert a = sumrange(Range("B5:T9")) a = sumrange.Range("B5:T9"))
Nein.. Siehe meine Antwort
Range("B5:T9")
zu .Range("B5:T9")
im a = sumrange(Range("B5:T9"))
immer ein "argument ist nicht optional" Fehler
Welche Linie? BTW sind Sie mit diesem innerhalb von excel?
geändert a = sumrange(Range("B5:T9")) a = sumrange.Range("B5:T9"))
Nein.. Siehe meine Antwort
InformationsquelleAutor user3041384 | 2013-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code bei mir funktioniert, mit der änderung, die ich erwähnt habe. Dies ist, was ich versucht habe
Wenn Sie einen Bereich festlegen, ohne voll qualifizierenden, wird es immer finden aktive Blatt. Und
ActiveSheet
vielleicht nicht das Blatt, das Sie erwarten, es zu sein, und daher voll qualifiziert Ihre Objekte.Merke ich, dass Sie mit
Verwenden
.Open
Wie ich es getan habe.BEARBEITEN:
In diesem Fall, brauchen Sie nicht zu definieren, Ihre excel-Anwendung. Ihr code kann neu geschrieben werden als
Dank der festen und festen
InformationsquelleAutor Siddharth Rout
Für diejenigen, die noch auf der Suche nach einer Online-Lösung:
Nahm es aus meinem code, es befasst sich mit der Auswahl von Zellen, aber Sie können leicht mit
RANGE("...")
statt derCELLS(,)
- Funktion).Beispiel die Zeile darüber schreibt die Summe in Tabellenblatt "Daten" (
range("AI3:AI131")
) auf die A10 in der aktuellen Arbeitsblatt.InformationsquelleAutor PowerFritz