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

Forumthread: Ausgabe im Direktbereich

Ausgabe im Direktbereich
09.05.2013 18:21:00
Tina
Hallo,
ich bin absoluter VBA Anfänger und mache gerade einen Kurs. Ich habe versucht zuhause nochmals nachzuvollziehen, was dort gemacht wurde und stehe nun vor einem Problem. Wäre sehr nett wenn mir jemand helfen könnte.
Die Aufgabe ist sehr einfach. Ich habe ein Excel Tabelle mit Aktienkursen. Die relevante Spalte ist G.
Folgenden habe ich geschrieben:
Option Explicit
Option Base 1
Sub DescriptiveStat()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim dax As Range
Set dax = ws.Range("g1:g90")
End Sub

Wenn ich nun im Direktfenster eingebe:
? dax (1,1)
sollte mir doch eigentlich der Wert aus G2 ausgegeben werden oder?
Ich bekomme aber immer nur Fehlermeldungen.
Wäre super wenn mir jemand eventuell weiterhelfen könnte!
Vielen Dank!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Ausgabe im Direktbereich
09.05.2013 18:35:20
Nepumuk
Hallo,
nein, da kommt der Wert von G1 raus, denn das ist die Zelle der ersten Zeile und der ersten Spalte des Bereiches DAX.
Gruß
Nepumuk

AW: Ausgabe im Direktbereich
09.05.2013 18:39:06
Nepumuk
Achso, zur Fehlermeldung:
die Abfrage kannst du natürlich nur zur Lebenszeit der Variablen machen. Nach End Sub existiert sie nicht mehr und du kannst sie darum nicht mehr abfragen. Geh deine Prozedur mit F8 durch bis die gelbe Markierung auf End Sub steht, dann kannst du die Abfrage im Direktfenster machen.
Gruß
Nepumuk

Anzeige
AW: Ausgabe im Direktbereich
09.05.2013 20:24:08
Tina
Hey,
vielen Dank! Wenn ich mit f8 durchgehe, dann klappt es! Werd wohl in nächster Zeit noch öfter ein paar Fragen stellen...
Gruß
Tina

wieso G2 ... Das ist G1
09.05.2013 18:36:05
Matthias
Hallo
in ein Modul:
Option Explicit
Sub DescriptiveStat()
Debug.Print Range("g1:g90")(1, 1)
End Sub
Gruß Matthias

Anzeige
Mach's doch so, Tina: ;-)
09.05.2013 18:36:35
Luc:-?

Sub DescriptiveStat()
Dim ws As Worksheet, dax As Range
Set ws = ActiveSheet
Set dax = ws.Range("g1:g90")
Debug.Print dax(1, 1)
End Sub
Gruß Luc :-?

ist ActiveSheet nicht unnötig ? owT
09.05.2013 18:43:02
Matthias
Hallo
mE reicht doch:
Sub DescriptiveStat()
Debug.Print Range("g1:g90")(1, 1)
End Sub
Gruß Matthias

Anzeige
Sicher, aber das ist doch eine ÜBUNGS...
09.05.2013 18:49:38
Luc:-?
…aufgabe aus dem Unterricht, Matti; ;-)
da wird schon mal so etwas gemacht, um die Schüler an sauberes Referenzieren zu gewöhnen. Analoges findest du oft auch in VBE-Hilfe-Bspp.
schöFTsGruß, Luc :-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Ausgabe im Direktbereich


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du die Tastenkombination ALT + F11 verwendest.

  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)".
    • Wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein:

    Option Explicit
    Sub DescriptiveStat()
       Dim ws As Worksheet
       Set ws = ActiveSheet
       Dim dax As Range
       Set dax = ws.Range("G1:G90")
       Debug.Print dax(1, 1) ' Gibt den Wert der Zelle G1 aus
    End Sub
  4. Starte das Makro:

    • Klicke auf F5 oder wähle "Ausführen" im Menü.
  5. Öffne das Direktfenster, um die Ausgabe zu sehen:

    • Gehe zu "Ansicht" und wähle "Direktfenster" oder drücke STRG + G.

Häufige Fehler und Lösungen

  • Fehlermeldung beim Ausführen: Wenn Du versuchst, den Wert im Direktfenster abzufragen, bevor das Makro ausgeführt wurde, erhältst Du einen Fehler. Stelle sicher, dass Du das Makro mit F5 oder durch das Durchgehen der Zeilen mit F8 ausführst, bevor Du den Wert abfragst.

  • Variable existiert nicht: Wenn Du versuchst, eine Variable im Direktfenster abzufragen, nachdem das Makro beendet ist, wird die Variable nicht mehr existieren. Achte darauf, dass Du die Abfrage während der Ausführung machst.


Alternative Methoden

  • Direkte Ausgabe im Direktbereich: Du kannst auch die Debug.Print-Anweisung direkt an die gewünschte Zelle binden, ohne ein Range-Objekt zu verwenden:

    Sub DescriptiveStat()
       Debug.Print Range("G1")(1, 1) ' Gibt den Wert der Zelle G1 aus
    End Sub
  • Einblenden des Direktfensters: Wenn das Direktfenster nicht sichtbar ist, kannst Du es mit STRG + G einblenden, um Deine Ausgaben sofort zu sehen.


Praktische Beispiele

  • Wert aus einer bestimmten Zelle ausgeben:

    Sub AusgabeBeispiel()
       Debug.Print Range("G2").Value ' Gibt den Wert von G2 aus
    End Sub
  • Schleife durch einen Bereich:

    Sub SchleifeDurchBereich()
       Dim i As Integer
       For i = 1 To 90
           Debug.Print Range("G" & i).Value ' Gibt alle Werte von G1 bis G90 aus
       Next i
    End Sub

Tipps für Profis

  • Nutze die Debug.Print-Anweisung, um während der Entwicklung Werte zu überprüfen, ohne das Programm zu unterbrechen. Es ist ein effektives Mittel, um Fehler zu identifizieren.

  • VBA-Direktfenster einblenden: Denke daran, das Direktfenster immer offen zu haben, wenn Du mit VBA arbeitest. So siehst Du Deine Ausgaben sofort und kannst schnell auf Probleme reagieren.

  • Verwende Option Explicit: Dies hilft, Fehler durch nicht definierte Variablen zu vermeiden und fördert die gute Programmierung.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Werte im Direktfenster ausgeben? Du kannst eine Schleife verwenden, um mehrere Werte nacheinander mit Debug.Print auszugeben.

2. Warum bekomme ich eine Fehlermeldung, wenn ich nach End Sub frage? Die Variablen existieren nur während der Ausführung des Makros. Du kannst die Werte nur während der Laufzeit abfragen, nicht danach.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige