Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: worksheetfunction bestimmter worksheet zuordnen

worksheetfunction bestimmter worksheet zuordnen
19.04.2015 00:31:54
Tobias
Servus,
Hab eine Frage und zwar Versuche ich einer worksheetfunction, eine bestimmte Tabelle zuzuordenen. Die Tabelle nennt sich summary, leider weiß ich nicht wo ich darauf verweisen muss.
sum = Sheets("summary").Cells(Rows.Count, 2).End(xlUp).Row
Su = Application.WorksheetFunction.Sum(Range(Cells(2, 2), Cells(sum - 1, 2)))
Wenn ich im Hintergrund die summary offen habe, funktioniert der Code wunderbar, aber sobald ich in eine andere Tabelle wechsel und das Programm starte, funktioniert es leider nicht mehr.

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Weil ein nacktes 'Range' sich stets auf das ...
19.04.2015 00:45:17
Luc:-?
…aktive Blatt bezieht, Tobias;
With Sheets("summary")
sumZ = .Cells(.Rows.Count, 2).End(xlUp).Row
Su = WorksheetFunction.Sum(.Range(.Cells(2, 2), .Cells(sumZ - 1, 2)))
End With
Beachte alle Vor-Punkte! Sie stellen im With-Konstrukt den Bezug zum vorangestellten Objekt her. Das sollte eines der 1.Dinge sein, die man in VBA lernt! Auch der Makro­Recorder verwendet das mitunter.
Gruß, Luc :-?

Anzeige
AW: Weil ein nacktes 'Range' sich stets auf das ...
19.04.2015 00:57:22
Tobias
Hat wunderbar geklappt! Vielen Vielen Dank!

Bitte sehr, gern geschehen! owT
19.04.2015 01:04:12
Luc:-?
:-?

AW: Keine Ausnahmen ohne Regel
19.04.2015 10:09:35
Gerd
Hallo!
In einem Tabellenblatt-Modul wurde der "nackige" Range auf dessen Blatt (Me) referenzieren.
Gruß Gerd

Anzeige
Zwar richtig, aber auch 2 Pkte vergessen! ;-] orT
19.04.2015 10:55:25
Luc:-?
(Auch verwende ich Me. dann auch!)
Gruß+schöSo, Luc :-?

AW: Welche ? o.T.
19.04.2015 11:02:02
Gerd
Gruß Gerd

Die auf dem 'u' von 'wurde'! ;-)) owT
19.04.2015 11:07:05
'wurde'!
:-?

Anzeige
AW: I.O. ;-)) m.T.
19.04.2015 11:41:46
Gerd
Deine Großschreibung nach Semikolon sei dir ebenfalls verziehen, Luc.
Gruß Gerd

Das mache ich idR nicht, Gerd, ...
19.04.2015 13:05:28
Luc:-?
…und oben hätte das ';' ein ':' sein sollen/müssen.
Luc :-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

worksheetfunction einem bestimmten worksheet zuordnen


Schritt-für-Schritt-Anleitung

Um einer worksheetfunction in VBA ein bestimmtes Worksheet zuzuordnen, kannst du folgendes Vorgehen nutzen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu oder wähle ein bestehendes Modul.
  3. Verwende das folgende Code-Snippet, um die Funktion korrekt zu referenzieren:
Sub BeispielSumme()
    Dim sumZ As Long
    Dim Su As Double

    With Sheets("summary")
        sumZ = .Cells(.Rows.Count, 2).End(xlUp).Row
        Su = Application.WorksheetFunction.Sum(.Range(.Cells(2, 2), .Cells(sumZ - 1, 2)))
    End With

    MsgBox "Die Summe beträgt: " & Su
End Sub

Dieser Code stellt sicher, dass die worksheetfunction immer auf das korrekte Worksheet verweist, unabhängig davon, welches Blatt gerade aktiv ist.


Häufige Fehler und Lösungen

Fehler 1: Bezug auf ein aktives Blatt

  • Wenn du versuchst, eine worksheetfunction ohne spezifischen Bezug zu verwenden, kann Excel annehmen, dass du dich auf das gerade aktive Blatt beziehst. Verwende immer den With-Block, um dies zu vermeiden.

Lösung: Stelle sicher, dass du das Zielblatt im With-Block angibst, wie im obigen Beispiel.

Fehler 2: Falsche Zellreferenzen

  • Wenn du Zellreferenzen in Range oder Cells ohne den richtigen Bezug angibst, kann dies zu Fehlern führen.

Lösung: Verwende den Punktoperator (.) vor Cells und Range, um sicherzustellen, dass die Referenz auf das richtige Blatt zeigt.


Alternative Methoden

Eine alternative Methode zur Verwendung von worksheetfunction in VBA ist die direkte Verwendung von Excel-Formeln in der Zelle. Du kannst die Formel in eine Zelle einfügen und dann den Wert abrufen:

Sub FormelInZelle()
    Sheets("summary").Range("A1").Formula = "=SUM(B2:B10)"
    MsgBox "Die Summe beträgt: " & Sheets("summary").Range("A1").Value
End Sub

Diese Methode ist nützlich, wenn du eine dynamische Formel benötigst, die sich automatisch aktualisiert.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du die vba worksheet function in deinem Projekt verwenden kannst:

  1. Du hast eine Tabelle "summary", die Verkaufszahlen enthält.
  2. Du möchtest die Summe der Verkaufszahlen in einer MessageBox anzeigen.
Sub VerkaufsSumme()
    Dim totalSales As Double
    With Sheets("summary")
        totalSales = Application.WorksheetFunction.Sum(.Range("B2:B100"))
    End With
    MsgBox "Gesamtumsatz: " & totalSales
End Sub

Dieses Beispiel zeigt, wie du die Summe der Werte in einem bestimmten Bereich ermitteln kannst.


Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Teste deinen Code regelmäßig, indem du verschiedene Arbeitsblätter öffnest und sicherstellst, dass die worksheetfunction immer korrekt funktioniert.
  • Verwende die Debug.Print-Funktion, um Werte während der Ausführung zu prüfen, ohne die Benutzeroberfläche zu stören.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Worksheets in einem Makro ansprechen? Du kannst mehrere With-Blöcke verwenden oder die Union-Funktion nutzen, um auf mehrere Bereiche zuzugreifen.

2. Was ist der Unterschied zwischen WorksheetFunction und Application.WorksheetFunction? WorksheetFunction ist eine einfache Möglichkeit, Excel-Funktionen in VBA zu verwenden, während Application.WorksheetFunction eine explizite Referenz auf die Excel-Anwendung darstellt. In den meisten Fällen sind sie jedoch austauschbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige