Anzeige
Archiv - Navigation
1588to1592
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

Range in String-Array einlesen

Range in String-Array einlesen
09.11.2017 18:02:24
Peter
Hallo zusammen,
ich möchte aus Performancegründen einen großen Tabellenbereich in einem Array bearbeiten. Um die Daten des Tabellenbereichs performant in das Array zu übernehmen, übertrage ich die komplette Range.
Dies funktioniert auch prinzipiell. Wenn das Array als Variant definiert ist, werden Telefonnummern (+49 12345...) und Datumswerte umgewandelt, ach wenn diese in der Ausgangstabelle als Text definiert sind (mit vorangestelltem Hochkomma).
Wenn das Array als String definiert wird, dann erhalte ich den Laufzeitfehler 13 (Typen unvertäglich). Diesen Fehler erhalte ich aber nur, wenn ich die komplette Range in das Array übertrage. Wenn ich in einer geschachtelten Schleife zellenweise vorgehe, erhalte ich keinen Fehler. Bei zig-tausend Zeilen und 300 Spalten dauert dies aber wesentlich länger als wenn ich in einer Anweisung die komplette Range übertrage.
Wie kann ich es erreichen, dass bei einer Übertragung Range nach Array eine Datenkonvertierung unterbleibt?
Pater

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

Betreff
Datum
Anwender
Anzeige
AW: Range in String-Array einlesen
09.11.2017 18:52:12
onur
Indem du statt Hochkomma "Zellen Formatieren / Text" nimmst, so wie das bei Excel üblich ist.
AW: Range in String-Array einlesen
09.11.2017 20:39:24
Luschi
Hallo onur
Excel 2013/16 wirft einen Fehler, wenn ich versuche, in ein String-Array Zellenwerte einzulesen und
diese Zellen als 'Text' formatiert sind.
Selbt wenn nur Buchstaben in den Zellen stehenm versagt diese String-Arrax-Variante; also nur so gehts:
Dim arr() oder Dim arr() As Variant oder Dim arr oder Dim arr As Variant
Gruß von Luschi
aus klein-Paris
Userbild
AW: Range in String-Array einlesen
09.11.2017 20:46:32
Peter
Hallo onur und Luschi,
vielen Dank für Eure Antworten. Dann werde ich den Bereich zuvor als "Text" formatieren und ein Variant-Array verwenden.
Vielen Dank.
Gruß Peter
Anzeige
AW: Range in String-Array einlesen
09.11.2017 20:58:25
onur
Hi Luschi,
Von String hatte ich auch nichts gesagt, einfach Variant (leider vergessen zu erwähnen).
Ich deklariere sowieso fast immer variant (ausser in best. Sonderfällen).
AW: Range in String-Array einlesen
09.11.2017 21:00:51
Luschi
Hallo Peter,

Dann werde ich den Bereich zuvor als "Text" formatieren und ein Variant-Array verwenden.
Das ist doch nun überhaupt nicht mehr erforderlich; einzig ein Variant-Array muß deklariert werden.
Gruß von Luschi
aus klein-Paris
AW: Range in String-Array einlesen
09.11.2017 21:06:58
Peter
Hallo Luschi,
nicht, wenn ich das Array nach der Bearbeitung wieder in den Tabellenbereich zurückschreibe. Ist der Bereich aber als Text formatiert, dann funktioniert es.
Gruß Peter
Anzeige
AW: Range in String-Array einlesen
09.11.2017 21:22:15
Luschi
Hallo Peter,
das kann ich so nicht bestätigen:

Sub test1()
Dim arr() As Variant
arr = Range("H4:J13").Value
'Range("M6:O14")
Range("H4:J13").Offset(2, 5).Value = WorksheetFunction.Transpose(WorksheetFunction. _
Transpose(arr))
End Sub
Userbild
Gruß von Luschi
aus klein-Paris
AW: Range in String-Array einlesen
09.11.2017 21:34:50
Peter
Hallo Luschi,
nimm mal Telefonnummern wie "+491234567890". Das "+" verschwindet beim zurückschreiben.
Gruß Peter
AW: Range in String-Array einlesen
09.11.2017 21:42:33
Peter
Hallo Luschi,
nimm mal Telefonnummern wie "+491234567890". Das "+" verschwindet beim zurückschreiben.
Gruß Peter
Anzeige
AW: Range in String-Array einlesen
09.11.2017 21:46:12
Peter
sorry - doppelte Antwort war ein Versehen
AW: Range in String-Array einlesen
09.11.2017 22:08:02
Luschi
Hallo Peter,
bei mir nicht, wenn ich die Tel-Nr so eingebe: '+341 xxxxx, also mit dem Texterkennungszeichen einfaches Hochkomma, so wie es in den 1. Tabellenkalk-Progs erforderlich war.
- wenn ich die Daten an die alte Stelle zurückschreibe, bleibt das Texterkennungszeichen erhalten
- schreibe ich die Matrix an eine andere Stelle, verschwindet es, aber das +Zeichen ist noch da
- Datumswerte stehen dafür plötzlich linksbündig in der Zelle (ein uraltes Kriegsleiden von Excel)
Also so ganz koscher ist die Array-Sache auch nicht.
  
Gruß von Luschi
aus klein-Paris
Anzeige

129 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige