Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Variablen übergeben die xte
#11
Hallo tmessers, :19:

nochmal zur Verdeutlichung. Wenn du Call nutzt um eine andere Sub aufzurufen, die Parameter erwartet, musst du die Parameter in Klammen setzten. Lässt du das Call weg, müssen auch die Klammern weg. :21:

Ich arbeite - im beruflichen Umfeld - nur mit Übergabe von Variablen, nicht mit "Public". Da hast du immer die volle Kontrolle. Blush

.xlsb   Variablenuebergabe.xlsb (Größe: 14,74 KB / Downloads: 10)

Starte in "Modul1" mal die Sub "Main". Am besten mit F8 im Einzelschritt. Schau dabei in den Direktbereich.
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • schauan
Antworten Top
#12
Hallo Case,

den Direktberich kannte ich noch gar nicht. Was passiert da? Ist das eine Endlosschleife?

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#13
Hallo, :19:

nein  - ich mache nur die Ausgabe im Direktbereich (VBA-Editor STRG+G). :21:
________
Servus
Case
Antworten Top
#14
Hallo,
 der Code durchläuft aber doch mehrfach die selben Abläufe. Immer mit dem selben Ergebnis. Mein Gott ... was ich alles wieder erlernen muss ...

Schönen Sonntag
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#15
Hi Marcus,

es gibt ja 3 "hilfreiche" Bereiche, den Direktbereich, die Überwachungsausdrücke und das Lokal - Fenster.

Im Überwachungsbereich baust Du Dir gezielte Überwachungsparameter auf, wo Du die Momentaninhalte siehst 

Im Direktbereich vollführst Du programmierte Ausgaben. Gerade bei Schleifen hat das den Vorteil, dass Du die aufeinanderfolgenden Inhalte nachvollziehen kannst und das auch noch nach Ende der Makros. Du kannst dann z.B. prüfen, ob gleiche Ergebnisse gewollt sind oder nicht und vielleicht durch weitere Ausgaben eventuelle Fehler weiter eingrenzen.

Im Lokalfenster hast Du eine Übersicht Deiner verwendeten Variablen nebst deren momentanen Inhalten - modulweit geltend und im jeweils laufenden Makro geltend
Was Du im Lokalfenster nicht haben würdest wären die in Deinem gesonderten "Variablenmodul" definierten Variablen, auch wenn DU die in einem laufenden Makro verwendest.
Übergebene Variablen hast DU hingegen wieder, z.B. bei Sub Tast(byVal y as String) zeigt Dir auch y an. Das Lokalfenster hat den Vorteil, dass Du nicht extra Überwachungsausdrücke definieren musst.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
Hallo André,

Danke für diese ausführliche Erläuterung. Supie ..., wieder etwas dazu gelernt.

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#17
Ich glaube langsam lichtet sich der Schleier.

Kurze Lernzielkontrolle:
Wenn ich aus einem Makro Variablen an ein andere
Makros in einem anderen Modulen übergeben möchte, mache das
bespielsweise so.

Modul1
   Sub Makro1()
   Dim Zeile as Integer
   Dim Spalte as Interger
      ....
   Call Makro2(Zeile)
   Call Makro3(Spalte)
   End Sub

Modul2
  Sub Makro2(Zeile as Integer)
     .....
  End Sub

Modul3
  Sub Makro3(Spalte as Integer)
     .....
  End Sub

Debug.Print Zeile nehmen ich zur Kontrolle, ist aber nicht unbedingt nötig.

Ist das so korrekt?
Antworten Top
#18
Hallöchen,

ja, so kann man es machen. Netterweise schreibt man vor die Variable noch byval oder byref, geht aber auch ohne. Excel hat ja zuweilen ein paar Standarderwartungen …

Sub Makro2(byval Zeile as Integer)

da kannst Du auch mal zu diesen beiden Verfahrensweisen schauen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • tmessers
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste