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

debug.print Syntax?

Forumthread: debug.print Syntax?

debug.print Syntax?
Jörg-HH
Hallo zusammen
wollte mir anzeigen lassen, welche Objects ich so auf meinem Blatt versammelt habe, und hatte dazu
Debug.Print Worksheets("TP-Daten").OLEObjects.Object.Name
ins Direktfenster geschrieben. Es kommt aber die Meldung "Objekt unterstützt diese Eigensch od Meth nicht". Was habe ich denn falsch geschrieben?
Grüße - Jörg
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: debug.print Syntax?
17.08.2011 17:09:21
ransi
HAllo
ICh denke du musst ne schleife drumrum bauen.
Etwa so:
For each ding in Worksheets("TP-Daten").OLEObjects
debug.print ding.name
next
ransi
Schleife
17.08.2011 17:15:29
Jörg-HH
Hi Ransi
wenn ich sowas ins Direktfenster schreibe, krieg ich Schelte "Next ohne For"
Jörg
AW: Schleife
17.08.2011 17:25:21
ransi
HAllo
Der Code muss irgendwie gestartet werden.
In einer Sub oder einer Function.
Das Direktfenster dien nur als Ausgabe.
Public Sub machs()
    Dim Ding
    For Each Ding In Worksheets("TP-Daten").OLEObjects
        Debug.Print Ding.Name
    Next
End Sub


ransi
Anzeige
klappt... Danke, Ransi! oT
17.08.2011 17:30:40
Jörg-HH
debug.print Syntax Zusatzfrage
17.08.2011 18:27:42
Jörg-HH
...und wie kann ich die Text-Eigenschaft auslesen? Also ich möchte nicht die Namen haben, sondern das, was sie derzeit anzeigen...
Mit Debug.Print Object.Text jedenfalls geht's nicht. ich weiß nicht, wie man die einzelnen Eigenschaften ansprechen muß...
Jörg
AW: debug.print Syntax Zusatzfrage
17.08.2011 19:16:18
Gerd
Hallo Jörg,
da kommt es etwas auf die Art an.
Public Sub machs2()
Dim Ding As OLEObject
For Each Ding In Worksheets("TP-Daten").OLEObjects
On Error Resume Next
Debug.Print Ding.Name
Debug.Print Ding.Object.Value
If Err.Number  0 Then
Debug.Print Ding.Name & " hat keine Value-Eigenschaft"
Err.Clear
End If
Next
End Sub
Gruß Gerd
Anzeige
klappt auch - danke, Gerd! oT
17.08.2011 19:39:05
Jörg-HH
;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Debug.Print in Excel VBA richtig nutzen


Schritt-für-Schritt-Anleitung

Um Debug.Print in Excel VBA effektiv zu nutzen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)", wähle „Einfügen“ und dann „Modul“.

  3. Schreibe eine Subroutine: Füge den folgenden Code in das Modul ein:

    Public Sub zeigeObjekte()
       Dim Ding As OLEObject
       For Each Ding In Worksheets("TP-Daten").OLEObjects
           Debug.Print Ding.Name
       Next Ding
    End Sub
  4. Führe die Subroutine aus: Klicke auf Run oder drücke F5, um die Subroutine auszuführen.

  5. Sieh dir die Ergebnisse an: Öffne das Direktfenster (CTRL + G), um die Ausgaben von Debug.Print zu sehen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt unterstützt diese Eigenschaft oder Methode nicht"

    • Lösung: Überprüfe, ob das Objekt, das du ansprechen möchtest, tatsächlich die angegebene Eigenschaft hat. Zum Beispiel könnte Ding.Object.Text nicht funktionieren, wenn Ding kein Textfeld ist.
  • Fehler: "Next ohne For"

    • Lösung: Stelle sicher, dass die Schleife korrekt definiert ist und dass du die For-Schleife in einer Subroutine oder Funktion verwendest.

Alternative Methoden

Wenn du mit Debug.Print nicht die gewünschten Ergebnisse erzielst, kannst du Folgendes ausprobieren:

  • Verwende MsgBox: Anstelle von Debug.Print, um Informationen direkt anzuzeigen:

    MsgBox Ding.Name
  • Schreibe in eine Excel-Zelle: Speichere die Ausgaben in einem Arbeitsblatt:

    Worksheets("TP-Daten").Cells(1, 1).Value = Ding.Name

Praktische Beispiele

Hier sind einige Beispiele, wie du Debug.Print in verschiedenen Szenarien verwenden kannst:

  1. Daten in einem Array debuggen:

    Dim arr() As Variant
    arr = Array("Eins", "Zwei", "Drei")
    For i = LBound(arr) To UBound(arr)
       Debug.Print arr(i)
    Next i
  2. Werte von OLE-Objekten auslesen:

    Public Sub zeigeWerte()
       Dim Ding As OLEObject
       For Each Ding In Worksheets("TP-Daten").OLEObjects
           On Error Resume Next
           Debug.Print Ding.Name
           Debug.Print Ding.Object.Value
           If Err.Number <> 0 Then
               Debug.Print Ding.Name & " hat keine Value-Eigenschaft"
               Err.Clear
           End If
       Next Ding
    End Sub

Tipps für Profis

  • Fehlerbehandlung: Nutze On Error Resume Next, um Fehler bei der Ausführung zu ignorieren und weiterzumachen, besonders wenn du mit Objekten arbeitest, die nicht immer dieselben Eigenschaften haben.
  • Kommentiere deinen Code: Verwende Kommentare, um zu erklären, was dein Code macht. Das hilft, die Lesbarkeit zu erhöhen.
  • Debugging mit Debug.Print: Verwende Debug.Print regelmäßig, um den Verlauf deiner Variablen während der Ausführung nachzuvollziehen.

FAQ: Häufige Fragen

1. Wie kann ich Debug.Print in Excel VBA verwenden?
Um Debug.Print zu verwenden, erstelle eine Subroutine und schreibe die gewünschten Ausgaben ins Direktfenster. Beispiel: Debug.Print "Test".

2. Was mache ich, wenn ich keine Ausgaben im Direktfenster sehe?
Stelle sicher, dass das Direktfenster offen ist (CTRL + G). Vergewissere dich auch, dass die Subroutine ausgeführt wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige