Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Die Methode 'Range' für das Objekt '_Global' ist..

Forumthread: Die Methode 'Range' für das Objekt '_Global' ist..

Die Methode 'Range' für das Objekt '_Global' ist..
10.01.2003 10:55:59
Christian
Hi !

Ich bekomme bei meinem Makro den Fehler:

Laufzeitfehler '1004':
Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen

Bei folgendem Code:

sourceData = "Invoices!R1C1:R26C17"
tblDestination = "Rev-OV!A6"

Das Makro soll automatisch eine Pivot-Tabelle erstellen.
Wenn tblDestination den Wert "RevOV!A6" hat, also ohne Strich klappt es. Ich möchte aber auf den Strich nicht verzichten.

Was kann ich hier machen?

Vielen Dank für eure Antworten

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Die Methode 'Range' für das Objekt '_Global' ist..
10.01.2003 11:15:18
Michael Scheffler
Hallo,

wenn es unbedingt sein muss, dann musst Du halt umbenennen, Pivot und wieder umbenennen. Mit "Replace" kannst Du ab Excel 2000 in Strings Zeichenketten austauschen.

Wenn Du "Application.Screenupadating = False" und hinterher "True" setzt, wird es der Nutzer nicht mal merken.

Aber besser ist es immer, wenn man bei der Programmierung auf solche Zeichen verzichtet, dazu zählen auch Umlaute etc.

Gruß

Micha

Anzeige
Re: Die Methode 'Range' für das Objekt '_Global' i
10.01.2003 11:25:14
Christian
Ich habe noch eine andere Lösung gefunden.
Bevor die Range Methode ausgeführt werden soll muss das Worksheet aktiviert werden.
tblDestination hat dann nur den Wert "A6"

Dann funktioniert es auch mit Strich

;
Anzeige

Infobox / Tutorial

Fehlerbehebung bei der Methode 'Range' für das Objekt '_Global'


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler 1004 zu beheben, der besagt, dass die Methode 'Range' für das Objekt '_Global' fehlgeschlagen ist, folge diesen Schritten:

  1. Worksheet aktivieren: Stelle sicher, dass das betreffende Worksheet aktiviert ist, bevor du die Range-Methode verwendest. Du kannst dies mit folgendem Code erreichen:

    Worksheets("Invoices").Activate
  2. Range korrekt definieren: Achte darauf, dass die Range-Definition korrekt ist. Verwende die Syntax:

    sourceData = "Invoices!R1C1:R26C17"
  3. Ziele für tblDestination: Setze tblDestination auf den gewünschten Zielbereich, beispielsweise:

    tblDestination = "Rev-OV!A6"
  4. Pivot-Tabelle erstellen: Stelle sicher, dass du die Pivot-Tabelle erst nach der Aktivierung des Worksheets erstellst.


Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler 1004

    • Ursache: Das Worksheet ist nicht aktiviert.
    • Lösung: Aktiviere das Worksheet, bevor du auf die Range zugreifst.
  • Fehler: Methode 'Range' für das Objekt 'Worksheet' ist fehlgeschlagen

    • Ursache: Falsche Referenzierung des Worksheets.
    • Lösung: Überprüfe die Schreibweise des Arbeitsblatts und stelle sicher, dass es existiert.
  • Fehler: Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen

    • Ursache: Der Code versucht, auf eine nicht existierende Range zuzugreifen.
    • Lösung: Vergewissere dich, dass die angegebene Range korrekt ist und im aktiven Worksheet existiert.

Alternative Methoden

Falls die oben genannten Lösungen nicht funktionieren, kannst du folgende alternative Methoden ausprobieren:

  • Verwende Named Ranges: Definiere benannte Bereiche in Excel, die du dann im Code verwenden kannst.
  • Ersetze ungültige Zeichen: Wenn dein Zielbereich ungültige Zeichen (wie '-') enthält, könntest du diese durch einen anderen String ersetzen, bevor du den Code ausführst:
    tblDestination = Replace(tblDestination, "-", "_")

Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du die Methode 'Range' korrekt verwenden kannst. Angenommen, du möchtest Daten aus einem Worksheet in eine Pivot-Tabelle übertragen:

Sub CreatePivotTable()
    Dim sourceData As String
    Dim tblDestination As String

    ' Aktiviere das Arbeitsblatt
    Worksheets("Invoices").Activate

    ' Definiere den Datenbereich und Zielbereich
    sourceData = "Invoices!R1C1:R26C17"
    tblDestination = "Rev-OV!A6"

    ' Erstelle die Pivot-Tabelle hier...
End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating: Deaktiviere die Bildschirmaktualisierung während der Ausführung deines VBA-Codes, um die Geschwindigkeit zu erhöhen und visuelle Störungen zu vermeiden:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Vermeide Sonderzeichen: Bei der Benennung von Worksheets und Bereichen ist es ratsam, Sonderzeichen zu vermeiden, um zukünftige Probleme mit der Methode 'Range' zu verhindern.


FAQ: Häufige Fragen

1. Warum bekomme ich den Laufzeitfehler 1004? Der Fehler tritt auf, wenn das angegebene Worksheet nicht aktiv ist oder wenn die Range nicht korrekt referenziert wird.

2. Was sind die häufigsten Ursachen für die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen? Die häufigsten Ursachen sind nicht aktivierte Worksheets oder falsche Range-Referenzen. Achte darauf, dass das Worksheet korrekt aktiviert ist und die Range existiert.

3. Kann ich ungültige Zeichen in Worksheetnamen verwenden? Es wird empfohlen, keine ungültigen Zeichen wie '-' oder Umlaute zu verwenden, um mögliche Fehler mit der Range-Methode zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige