Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
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

Wie muß der Code richtig lauten?

Wie muß der Code richtig lauten?
02.06.2017 06:27:28
Frank
Guten Morgen zusammen,
da ich sehr viel Text mittels VBA setzen muss,benötige ich mal wieder eure Hilfe.
Beispiel: Cells(zeile, spalte) = "text", was als Beispiel dann so aussieht:
Cells(2, 40) = "1"
Cells(4, 40) = "32"
Range("AN2").Value="1"
Range("AN4").Value="32"
Beide Varianten gehen ja.Nun möchte ich das gerne bewerkstelligen,da ich mir jedesmal dieses Cells oder Range sparen kann,was dann in etwa so aussehen könnte:
Cells(2, 40) = "1",(4, 40) = "32" etc. oder eventuell
Range.Value("AN2 ="1",AN4 ="32")
Gibts da ne Möglichkeit?
Lg Frank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie muß der Code richtig lauten?
02.06.2017 08:15:39
Hajo_Zi
Hallo Frank,
keine Ahnung was Du willst?
ohne Cells oder Range ["an1"] aber ob das schneller ist, das muss VBA ja übersetzen.

AW: Wie muß der Code richtig lauten?
02.06.2017 08:24:40
Fennek
Hallo,
falls der Text gleich ist, geht das sehr schnell:

Range("A1:B1000000") = "Text"
Anderst ausgedückt: Wenn man die Text zuerst in einem Array sammelt und dann das Array auf einmal in die Zellen schreibt, ist dies recht schnell.
mfg
AW: Wie muß der Code richtig lauten?
02.06.2017 08:26:19
ChrisL
Hi Frank
Nur als Beispiel im Sinne einer Möglichkeit:
Sub t()
mach 1, "A1"
mach 3, "B2"
End Sub

Private Sub mach(v As Integer, a As String)
Range(a) = v
End Sub

Aus meiner Sicht jedoch sinnlos. Schneller wird es bestimmt nicht und Buchstaben hast du auch nicht viel gespart.
Interessanter wäre, wenn es gewisse Regelmässigkeiten gibt z.B. Zweierschritte (AN2, AN4, AN6, AN8 usw.). Im Sinne einer Horizonterweiterung könntest du dich auch in das Thema "Array" resp. Datenfelder einlesen. Ob der Einsatz eines solchen Array in deinem Fall richtig/sinnvoll ist, hängt von der genauen Aufgabe ab.
cu
Chris
Anzeige
AW: Wie muß der Code richtig lauten?
02.06.2017 08:35:09
Daniel
Hi
wenn du dir Schreibarbeit sparen willst, solltest du bei Zahlen die Anführungszeichen weglassen.
eine weitere Kurzschreibweise um die Zellen zu anzusprechen wäre diese:
[AN2] = 1
[AN4] = 32

Diese Schreibweise hat aber den Nachteil, dass du hier keine Variablen mehr für Zeilen oder Spalten verwenden kannst.
Außerdem ist es in der Ausführung etwas langsamer als Range oder Cells (was aber bei geringen Mengen nicht spürbar sein sollte)
Mehrere Zellen gleichzeitig anpsprechen kannst du nur, wenn:
- die Zellen den gleichen Wert bekommen:

[AN2,AN4] = 99

- die Zellen direkt neben oder untereinander liegen. Dann muss man die Werte aber in ein Array _ packen, welches genauso viele Werte enthält wie du Zellen ansprichst. Liegen die Zellen untereinander, muss zusätzlich transponiert werden.

[AN2:AN4] = Worksheetfunction.transpose(Array(1, "", 32))
[AN1:AP] = Array(1, "", 32)
Gruß Daniel
Anzeige
AW: Wie muß der Code richtig lauten?
02.06.2017 08:50:47
Frank
Hallo,
vielen Dank für die schnellen Antworten. Ob ich das mit dem Array versteh bzw obs mir tatsächlich was nützt,muss ich dann schauen. Das mit den Zellen,wo der Text derselbe ist,das habe ich auf folgende Art gelöst bekommen:
Für den entsprechenden Bereich
'*             Texte werden gesetzt                   *
Range("AI3,AI18").Value = "Platz 129"
Range("AK4,AK17").Value = "Platz 193"

Da jeder Bereich entsprechend der Anzahl der Spieler x-mal kopiert wird,habe ich auch das gewünschte Ergebnis.
Ich werde alles 1x per Hand eintragen und mit Kommentaren versehen,die Mappe dann hier hoch laden,kann sein,dass ich mich mal wieder zu undeutlich ausdrücke und jemand doch noch ne Idee hat.
Lg Frank
Anzeige
AW: Testmappe samt Code fertig
03.06.2017 18:20:09
Frank
Hallo zusammen,
habe jetzt mal zum einen alles per Hand eingetragen und desweiteren in den Tabellenblättern Kommentare hinterlassen.
https://www.herber.de/bbs/user/114004.xls
Lg Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige