Hallo zusammen,
ich habe diese Frage schon in einem anderen Forum gestellt, allerdings konnte mir da keiner wirklich helfen.
Zum Hintergrund: Ich möchte mein VBA Programm wartungsfreundlicher machen. Im Code habe ich an manchen Stellen Begriffe hart codiert (weils nicht anders möglich ist). Daher ist meine Idee eine Exceldatei anzulegen, wo man die hart codierten Begriffe untereinander reinschreibt und beim Programmaufruf als Array genutzt und in andere Makros verwendet wird. Dann muss man nicht durch knapp 500 Zeilen gucken und jede hart codierte Stelle anpassen.
Ein einfaches Beispiel kann sowas sein:
- Tabelle1 mit allen Ländern der Welt
- Tabelle2 mit allen Industrieländern der Welt
In Tabelle1 soll die Hauptauswertung ablaufen. Die Industrieländer der Tabelle2 sollen in ein Array gespeichert werden. Tabelle1 greift auf das Array zu und löscht z.B. alle anderen Länder, sodass nur die Industrieländer in der Liste aller Länder vorhanden sind.
Jetzt kann es passieren, dass Industrieländer dazukommen. Damit man nicht im Code von Tabelle1 die hartcodierten Zeilen ändern muss, soll man lediglich die neuen Industrieländer in die Tabelle2 schreiben und beim nächsten Ausführen soll Tabelle1 auf das aktualisierte Array zugreifen können und die neue Liste mit den neuen Industrieländern ausgeben können.
Natürlich macht dieses Beispiel kein Sinn, es soll es aber vereinfacht und anschaulich darstellen :-).
Ich habe schon was in Foren gefunden, dass sieht dann in etwa so aus:
Allerdings funktioniert dies noch nicht an jeder Stelle im Code (halt nur da wo explizit ein Array abgefragt wird).
In diesem Beispiel läuft das Makro zwar, aber es werden kompletten falsche Werte wiedergegeben:
Daher meine Frage: Liegt das an dem Case-Statement, dass das Array nicht richtig benutzt wird? Gibt es eine andere Methode bzw. gibt es einen Weg wie ich ein Array auf das Case-Statement anwende?
Schonmal vielen Dank für die Hilfe!
VG
ich habe diese Frage schon in einem anderen Forum gestellt, allerdings konnte mir da keiner wirklich helfen.
Zum Hintergrund: Ich möchte mein VBA Programm wartungsfreundlicher machen. Im Code habe ich an manchen Stellen Begriffe hart codiert (weils nicht anders möglich ist). Daher ist meine Idee eine Exceldatei anzulegen, wo man die hart codierten Begriffe untereinander reinschreibt und beim Programmaufruf als Array genutzt und in andere Makros verwendet wird. Dann muss man nicht durch knapp 500 Zeilen gucken und jede hart codierte Stelle anpassen.
Ein einfaches Beispiel kann sowas sein:
- Tabelle1 mit allen Ländern der Welt
- Tabelle2 mit allen Industrieländern der Welt
In Tabelle1 soll die Hauptauswertung ablaufen. Die Industrieländer der Tabelle2 sollen in ein Array gespeichert werden. Tabelle1 greift auf das Array zu und löscht z.B. alle anderen Länder, sodass nur die Industrieländer in der Liste aller Länder vorhanden sind.
Jetzt kann es passieren, dass Industrieländer dazukommen. Damit man nicht im Code von Tabelle1 die hartcodierten Zeilen ändern muss, soll man lediglich die neuen Industrieländer in die Tabelle2 schreiben und beim nächsten Ausführen soll Tabelle1 auf das aktualisierte Array zugreifen können und die neue Liste mit den neuen Industrieländern ausgeben können.
Natürlich macht dieses Beispiel kein Sinn, es soll es aber vereinfacht und anschaulich darstellen :-).
Ich habe schon was in Foren gefunden, dass sieht dann in etwa so aus:
Allerdings funktioniert dies noch nicht an jeder Stelle im Code (halt nur da wo explizit ein Array abgefragt wird).
In diesem Beispiel läuft das Makro zwar, aber es werden kompletten falsche Werte wiedergegeben:
VB.NET-Quellcode
Daher meine Frage: Liegt das an dem Case-Statement, dass das Array nicht richtig benutzt wird? Gibt es eine andere Methode bzw. gibt es einen Weg wie ich ein Array auf das Case-Statement anwende?
Schonmal vielen Dank für die Hilfe!
VG