AW: Runden in VBA verallgemeinern
28.08.2024 18:38:36
daniel
Es gibt in VBA nicht die Möglichkeit, eine Gruppe von Variablen als Gruppe zu bearbeiten.
man kann auch nicht eine Schleife über eine Menge von Variablen laufen lassen.
der Workaround wäre, wenn du so was benötigst, dass du nicht jede Variable einzeln anlegst, sondern ein Array mit der entsprechenden Dimensionierung
also statt
Dim A as Double
dim B as Double
dim C as Double
A = 1/7
B = 1/3
C = 1/6
A = Round(A, 3)
B = Round(B, 3)
C = Round(C, 3)
dann
dim ABC(1 to 3) as Double
ABC(1) = 1/7
ABC(2) = 1/3
ABC(3) = 1/6
for i = 1 to 3
ABC(i) = Round(ABC(i); 3)
Next
allerdings musst du dir dann die Nummern merken und hast keine sprechenden Benennungen mehr
wenn du sprechende Benennungen brauchst, kannst du auch ein Dictionary anlegen.
Das ist im Prinzip ein eindimendionales Array, welches aber einen beliebigen Freitext als index zulässt
dim dic as Object
set dic = CreateObject("Scripting.Dictionary")
dic("A") = 1/7
dic("B") = 1/3
dic("C") = 1/6
for each K in dic.Keys
dic(K) = round(dic(K), 3)
Next
hier hättest du zwar wieder eine sprechende Benennung und könntest auch mit Schleifen arbeiten, allerdings fehlt dir die Unterstützung durch die Intellisense und der Schutz von Option Explicit.
Gruß Daniel