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

Text in Array speichern und auslesen

Text in Array speichern und auslesen
06.10.2014 12:49:19
Stefanie
Guten Tag,
wie das mit dem Array funktioniert wurde mir hier in dem Forum schon super klasse erklärt. Vielen dank nochmals dafür! Nun meine Frage:
Hätte jemand ein kleines Beispiel für mich wie ich meine Kopie
 Cells(3, lSpalte + 1).Copy
in einem Array speicher und diese dann in einem neuen Tabellenblatt wieder einfüge?
Quasi im Array die Copy speichern und dann an einer anderen Stelle wieder auslese?
Ich mache dies immer mit Einzelschritten, da ich aber manchmal mehrmals Copy ausführen muss, würde ich diese gerne erst in einem Array speichern und später dann nacheinander auslesen (zwecks Performance).
Vielen lieben Dank!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Array speichern und auslesen
06.10.2014 13:45:09
Martin
Hallo Stefanie,
bei deinem Beispiel braucht man kein Array, eine einzelne Zelle kannst du auch einer einzelnen variablen zuweisen. Hier mal ein Beispiel mit einem Zellbereich A1 bis C3:
Sub Beispiel()
Dim varArray As Variant
'Zellbereich einem Array zuweisen
varArray = Range("A1:C3").Value
'Anderen Zellbereich mit Array füllen
Range("A4").Resize(UBound(varArray, 1), UBound(varArray, 2)) = varArray
End Sub
Viele Grüße
Martin

Ergänzung
06.10.2014 15:14:43
Martin
Hallo Stefanie,
du kannst Zelleninhalte übrigens auch direkt kopieren, ohne die Daten in einer Variable "zwischenlagern" zu müssen.
Beispiel:
Sub Beispiel()
'Inhalt aus einzelner Zelle kopieren
Sheets(3).Range("A1") = Sheets(2).Range("C5").Value
'Zellenbereich kopieren
Sheets(1).Range("A1:C3").Copy (Sheets(3).Range("A5"))
End Sub
Viele Grüße
Martin

Anzeige
AW: Ergänzung
07.10.2014 11:11:34
Stefanie
Vielen dank zunächst für deine Hilfe. Ist diese Variante schneller?
Also ich suche eben in mehreren Zeilen nach einem "x", wenn eines gefunden wurde, sollen bestimmte Texte kopiert werden. Das können ziemlich viele sein. Da ich dies ja gerade folgendermaßen mache:
Suche X, wenn gefunden, kopiere Zelle, wechsle Tabellenblatt und füge ein
Natürlich dauert dies zu lange.
Daher dachte ich durch einen Array kann ich dieses hin und her springen ersteinmal verhindern, da ich dann erst zum Schluss alles in das andere Tabellenblatt kopiere.

AW: Text in Array speichern und auslesen
07.10.2014 11:15:23
Stefanie
Aber wenn ich ein einem Tabellenblatt, ziemliche viele Texte habe ist ein Array doch sinnvoll oder? Dann kann ich alle Texte erst einmal darin ablegen und dann erst in ein neues Tabellenblatt wechseln und alle Inhalte gleichzeitig einfügen?
Oder sehe ich das falsch ? :-(
Viele Grüße

Anzeige
AW: Text in Array speichern und auslesen
07.10.2014 11:19:40
Daniel
HI
kann man prinizipell machen, ist aber auch nicht schneller als die Werte komplett zu kopieren.
Wenn du die Zellbereiche direkt ansprichst, dann brauchst du ja auch nicht zwischen den Blättern zu wechseln.
Auch ist ein Copy-PasteSpecial gerade bei grossen Datenmengen schneller als das Einlesen und Schreiben in und aus einer Variablen.
Gruß Daniel

AW: Text in Array speichern und auslesen
07.10.2014 11:38:15
Stefanie
Genau aber das Problem ist, dass ich in einer Zeile nach einem "X" suche, wenn eins gefunden wurde dann muss ein bestimmter Text kopiert werden. Zu jedem gefundenen "X" gibts quasi einen anderen Text. Desewgen kann ich nicht einfach einen Bereich kopieren.
Ist das verständlich? Wie kann ich dieses Problem lösen?
Danke dir! VG

Anzeige
AW: Text in Array speichern und auslesen
07.10.2014 11:52:19
Daniel
Hi
wie sieht den die Problemstellung konkret aus?
kannst du mal ne Beispieldatei hochladen und kennzeichnen was wohin kopiert werden soll?
Gruß Daniel

AW: Text in Array speichern und auslesen
07.10.2014 14:07:04
Stefanie
Aber ohne VBA :-)

AW: Text in Array speichern und auslesen
07.10.2014 14:55:19
Daniel
hi
warum VBA, wenns mit zwei einfachen Formeln funktioniert?
zum Vergleich der benötigte VBA-Code
Sub test()
Dim arrM
Dim arrG
Dim arrX
Dim Erg
Dim z As Long
Dim s As Long
With Sheets("Tabelle1")
arrG = .Range(.Cells(4, 1), .Cells(4, 1).End(xlDown))
arrM = .Range(.Cells(2, 2), .Cells(2, 2).End(xlToRight))
arrX = .Range(.Cells(4, 2), .Cells(.Cells(4, 1).End(xlDown).Row, .Cells(2, 2).End(xlToRight) _
.Column))
ReDim Erg(1 To UBound(arrG, 1), 1 To 2)
End With
For z = 1 To UBound(arrG, 1)
For s = 1 To UBound(arrM, 2)
Erg(z, 1) = arrG(z, 1)
If arrX(z, s) = "x" Then
Erg(z, 2) = Erg(z, 2) & vbLf & arrM(1, s)
End If
Next
If Len(Erg(z, 2)) > 0 Then Erg(z, 2) = Mid$(Erg(z, 2), 2)
Next
Sheets("Tabelle2").Cells(2, 1).Resize(UBound(Erg, 1), 2).Value = Erg
End Sub

zum Vergleich nochmal der VBA-Code den du brauchst, um die Formel-Lösung zu realisieren:
Sub test2()
Sheets("Tabelle1").Cells.Copy Sheets("Tabelle3").Cells(1, 1)
With Sheets("Tabelle3")
With .Range(.Cells(4, 2), .Cells(.Cells(4, 1).End(xlDown).Row, .Cells(2, 2).End(xlToRight). _
Column))
.FormulaR1C1 = "=IF(Tabelle1!RC=""x"", Tabelle1!R2C,"""")&IF(RC[1]"""",CHAR(10),"""")& _
RC[1]"
End With
.Range(.Cells(4, 1), .Cells(4, 1).End(xlDown).Offset(0, 1)).Copy
Sheets("Tabelle2").Cells(2, 1).PasteSpecial xlPasteValues
End With
End Sub
braucht deutlich weniger Zeilen und ist vorallem dann viel angenehmer, wenn du den Code im Einzelstep testen musst.
Viel langsamer ist es wahrscheinlich auch nicht.
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige