Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Globale Variable leert sich

VBA-Globale Variable leert sich
25.06.2019 19:32:21
Arnd-Olav
Hallo,
Ich habe einer Sub Routine eine Variable gefüllt. Beim Sprung in die nächste Routine, die sich in einem anderen Workbook befindet leert sich diese Variable.
Ich weiß nicht warum.
Die Variable, die ich mit hinüber nehmen muss heißt STR_ATTACH_PATH
Option Explicit
Global STR_ATTACH_PATH As String
Public Sub EXTRACT_DCO_VIEWS()
Application.Run "scriptHUB.xlsm!GET_VAR_WB_POG_MACRO"
STR_ATTACH_PATH = Workbooks(STR_VAR_WBNAME).Sheets("UI").Range("B43")
Debug.Print STR_ATTACH_PATH
Application.Run "scriptHUB.xlsm!EXTRACT_DCO_PREQS"
Application.Run "scriptHUB.xlsm!EXTRACT_DCO_POS"
End Sub
In einem Schritt davor muss ich auch eine Variable mitnehmen (STR_VAR_WBNAME), und diese verschwindet beim Sprung in die nächste Routine seltsamerweise nicht:
Option Explicit
Global STR_VAR_WBNAME As String
Public Sub GET_VAR_WB_POG_MACRO()
Dim wb As Workbook
Dim STR_SEARCH_VAR_WBNAME As String
STR_SEARCH_VAR_WBNAME = "pog_macro_20"
For Each wb In Application.Workbooks
If wb.Name Like STR_SEARCH_VAR_WBNAME & "*.xlsm" Then
STR_VAR_WBNAME = wb.Name
With wb.Sheets("UI")
End With
End If
Next wb
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Globale Variable leert sich
25.06.2019 19:35:08
Hajo_Zi
Über gebe dem Makro auch Parameter. In der Art.
Application.Run "PERSONAL.XlSB!MarkBerIdenfiz", 1, 2, 3, 4

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: VBA-Globale Variable leert sich
25.06.2019 19:38:08
Regina
Hi,
liegt vermutlich daran, dass Du im ersten Script einen Makro in einer anderen Mappe ausführst, also in einem anderen Projekt. Dort ist die Variable dann nicht bekannt.
Im 2. Code "verlässt" Du das Ursprungsworkbook ja nicht, sondern "schaust" nur in andere Workbooks rein.
Vermutlich musst Du im ersten Code die Variable als Parameterwert übergeben.
Gruß
Regina
Anzeige
AW: VBA-Globale Variable leert sich
25.06.2019 19:49:06
Arnd-Olav
Die erste Sub (Public Sub EXTRACT_DCO_VIEWS()) findet in WB1 statt.
Diese holt sich aus der Sub Public Sub GET_VAR_WB_POG_MACRO() in WB2 erfolgreich die Variable STR_VAR_WBNAME.
Nun soll im ersten Sub (immer noch Sub EXTRACT_DCO_VIEWS()) die Variable STR_ATTACH_PATH gefüllt werden, was sie auch wird.
Mit Application.Run "scriptHUB.xlsm!EXTRACT_DCO_PREQS" geht es nun wieder zum WB2.
Hier angekommen ist STR_VAR_WBNAME immer noch mit dem Wert gefüllt, aber STR_ATTACH_PATH hat sich geleert.
@Hajo, wie meinst du das mit den Parametern?
AW: VBA-Globale Variable leert sich
25.06.2019 19:55:39
Hajo_Zi
Public Sub GET_VAR_WB_POG_MACRO(InWert1 as Integer, InWert2 as integer usw. )
Gruß Hajo
Anzeige
AW: VBA-Globale Variable leert sich
25.06.2019 20:02:31
Arnd-Olav
Ich bin dazu zu dämlich...
Jetzt hab ich
Public Sub GET_VAR_WB_POG_MACRO(STR_ATTACH_PATH As String)
Geschrieben (viel Auswahl war ja nicht) und bekomme eine Fehlermeldung
AW: VBA-Globale Variable leert sich
25.06.2019 20:24:15
Hajo_Zi
dazu kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue und ich baue keine Datei nach.
Vielleicht sollte die Datei verlinkt werden?
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
AW: VBA-Globale Variable leert sich
25.06.2019 20:11:47
Arnd-Olav
So hat es auf dem Rückweg geklappt:

Option Explicit
Global STR_VAR_WBNAME As String
Global STR_ATTACH_PATH As String
Public Sub GET_VAR_WB_POG_MACRO()
Dim wb As Workbook
Dim STR_SEARCH_VAR_WBNAME As String
STR_SEARCH_VAR_WBNAME = "pog_macro_20"
For Each wb In Application.Workbooks
If wb.Name Like STR_SEARCH_VAR_WBNAME & "*.xlsm" Then
STR_VAR_WBNAME = wb.Name
With wb.Sheets("UI")
End With
End If
Next wb
End Sub
Warum auch immer.....
Danke euch
AW: VBA-Globale Variable leert sich
25.06.2019 20:24:35
onur
Wenn du willst, dass eine Variable in ALLEN Modulen gültig ist, musst du sie in einem allgemeinen Modul als "Public" dimensionieren.
Die Anweisung "Global" gibt es eigentlich gar nicht mehr, sie wurde durch "Public" ersetzt, wird aber wg. der Abwärts-Kompatibilität weiterhin unterstützt.
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige