Anzeige
Archiv - Navigation
1812to1816
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

mehrere Operationen in eine Zeile

mehrere Operationen in eine Zeile
19.02.2021 14:19:09
Ger.
Hi :-)
gerne möchte ich meinen Code kompakt halten.
Ich habe mehrere Zuweisungen.
k1=""
k2=""
k3=""
k4=""
k5=""
k1-k5 sind strings, muss ich die definieren, oder definieren die sich selbst?
Was ist schneller für den PC? (normalerweise definiere ich schön sauber (C++ Kind ;))
Kann ich knapper k1-k5 einen Wert also "" zuweisen?`
Kann ich ggf. hintereinander in einer Codezeile mit Trennzeichen schreiben?
k1="", k2="".....
Danke schön :-)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Operationen in eine Zeile
19.02.2021 14:43:40
Daniel
Hi
du kannst mehre Progammzeilen in eine Editorzeilen packen, in dem du sie mit Doppelpunkt trennst:
k1 = "": k2 = "": k3 = "" usw
knapper geht das zusweisen nicht, du könntest aber mit Arrays und dann mit Schleifen arbeiten:
dim K(1 to 5) as String
for i = 1 to 5
K(i) = ""
Next

wobei man bei Arrays das komplette Leeren dann tatsächlich in einem Schritt machen kann, einfach indem man nochmal dimensioniert.
allerdings muss dann die Initial-Deklarierung des Arrays ebenfalls mit ReDim erfolgen und nicht mit DIM, bzw die Initial-Deklariung muss als einfaches Variant erfolgen
also im Prinzip so:
Dim K as Variant
ReDim K(1 to 5) as string
K(1) = "Hallo Welt"
K(2) = "Du da im Radio"
Redim K(1 to 5) as string
Gruß Daniel
Anzeige
AW: mehrere Operationen in eine Zeile
19.02.2021 16:00:58
Ger.
Hallo Daniel,
ja so habe ich es auch gelöst und bin nun auch über den Fehler gestolpert, dass ich die Werte zurücksetzen muss *lach*
Was bringt das als "Dim... as Variant"?
Scheint auch ohne zu gehen?!
Und ReDim ist schneller als eine Forschleife?
AW: mehrere Operationen in eine Zeile
19.02.2021 16:40:23
Daniel
Hi
1. geht auch ohne. Ich hab nur gerne alle Variablen im Kopfteil aufgelistet. Für das ReDim fehlen da oft noch die notwendigen Infos.
2. weiß ich auch nicht.
Probiers doch einfach aus.
Array groß genug machen und ggf in einer Schleife wiederholen, damit man messbare Zeiten zusammenbekommt.
Gruß Daniel
AW: mehrere Operationen in eine Zeile
19.02.2021 18:18:27
onur
Geht auch mit
Erase K

Anzeige
Richtig, Onur, ...
20.02.2021 01:27:02
Luc:-?
…und ob nun Erase oder ReDim, Ger…,
beides bewirkt ein einfaches Verwerfen der alten Array-Inhalte, wobei bei Erase die bisherige Dimensionierung beibehalten wird, sie mit ReDim aber neu angelegt wird, was ggf erforderlich sein kann, vor allem bei ReDim Preserve, das die alten Werte bzw einen Teil davon beibehält. Damit kann man dann auch neue L- und UBounds setzen, auch >0|1 oder <0 für LBound. Wenn die Array-Indizes mit 0 beginnen, ist eine Modulo-Berechnung (mit Operator Mod*) derselben einfacher, weil ein Rest 0 direkt als Index verwendet wdn kann.
Ein Loop (auch per For Each) über alle Elemente dürfte somit etwas mehr Zeit erfordern, denn in den anderen Fällen könnte intern ja einfach eine leere Kopie des Arrays oder ein neues gleichen Namens angelegt oder das bisherige nur eingeschränkt oder erweitert wdn. Seine einzelnen Elemente müssten dann auch nicht angesprochen wdn. Bei Dim ist das ja auch so.
* Symmetrisch, in anderen Sprachen oft Reminder (=Rest) genannt, aber nicht mit der asymmetrischen XlFkt REST identisch, die ein mathematisches Modulo berechnet.
Morhn, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Anzeige

79 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige