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

array to range, range to array

array to range, range to array
Andi
Hallo,
Opa Helmut auf dem Fahrrad:
For i = 1 To UBound(arr)
Cells(1, i) = arr(i)
Next 'i
Raumschiff Enterprise
Range(Cells(1, 1), Cells(1, UBound(arr))) = arr
Ich favorisiere die Methode Raumschiff Enterprise, aber wenn ein arr Speicherplatz mit 1000 Zeichen belegt worden ist, quittiert VB dies mit der Fehlermeldung '1009'.
Warum kommt diese Fehlermeldung nicht schon ab 255 Zeichen?
Methode
arr = Range
Keine Probleme, bei Zeichenanzahl größer gleich 1000
Range = arr
Stellt ein Problem dar, bei Zeichenanzahl größer gleich 1000
Falsche Initiierung der Objekte kann man ausschließen.
Anstelle
sh.Range(sh.Cells(13, 1), sh.Cells(EFZVUIS(sh, 1) - 1, 12)) = arrMaster()
muß ich die Methode
For i = 1 To UBound(arrMaster)
For n = 1 To UBound(arrMaster(), 2)
sh.Cells(i + 12, n) = arrMaster(i, n)
Next
Next
anwenden. Warum ist das so? Danke.
Gruß Andi

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

Betreff
Benutzer
Anzeige
Limitiationen
21.12.2010 15:58:27
Renee
findest du hier zu Array's, Andi.
Ist mit Zeichenanzahl größer gleich 1000 der Textinhalt oder eine Formel gemeint?
GreetZ Renée
AW: Limitiationen
21.12.2010 16:49:04
Andi
Hi Renée
der Textinhalt ist gemeint.
Das Array ist deklariert Typ variant. Inhalt ist String.
Range 2 Array Methode funktioniert.
Umgekehrt nicht?
Gruß
Andi
AW: array to range, range to array
21.12.2010 16:43:53
Rudi
Hallo,
Wenn man ein Array in Bereiche schreiben will, sollte es 2-dimensional sein.
Das läuft:
Sub ttt()
Dim arr(1 To 2000, 1 To 1), i
For i = 1 To UBound(arr)
arr(i, 1) = String(i, "a")
Next i
Cells(1, 1).Resize(UBound(arr)) = arr
End Sub

allerdings max 1823 Zeichen, jedoch ohne Fehler.
Gruß
Rudi
Anzeige
AW: array to range, range to array
21.12.2010 17:02:04
Andi
Hi Rudi,
durch die Methode
arr = Range
wird das Array automatisch als zweidimensionales Array beschrieben.
Den Ausdruck "Cells.Resize(AnzahlFelder arr) = arr" kenne ich nicht.
1823
Werde ich nachlesen. Danke für den Hinweis.
Gruß Andi
Lösung array to range, range to array
21.12.2010 20:33:27
Andi
Hallo hier anbei die Antwort. :-D
Tatsächlich ein Bug.
Renee, Danke für den Link.
Rudi, der Link deckt sich inhaltlich mit Zeichenanzahl 18...von Dir.
Danke, jetzt weiss ich, dass es nicht an meinem quick and dirty liegt.
Zitat:
Der kuriose Bug mit der Anzahl Zeichen in einem Array
When you run a Microsoft Visual Basic for Applications (VBA) macro to transfer data from a VBA array that contains strings of data to a range of cells in Microsoft Excel 2000 or in Microsoft Excel 2002, the data may be truncated (cut off).
Note
In Microsoft Office Excel 2003, you may receive the following error message when you run the VBA macro in the Visual Basic Editor:
Run-time error '1004':
Application-defined or object-defined errorr
If you run the VBA macro from your Excel worksheet (on the Tools menu, point to Macro and then click Macros), you may receive the following error message:
Microsoft Visual Basic: 400
This problem may occur when the VBA array is longer than 1,823 characters in length.
To work around this problem, populate each cell in your worksheet one at a time from the array, instead of populating the whole range at one time. To do this, use a VBA macro that is similar to the following example:
Sub PopulateRangeWithArray()
Dim x
ReDim x(1 To 2, 1 To 2)
x(1, 1) = String(2000, "a"): x(1, 2) = String(5000, "b")
x(2, 1) = String(17000, "c"): x(2, 2) = String(33000, "d")
MsgBox Len(x(1, 1)) & "," & Len(x(1, 2)) & "," & Len(x(2, 1)) & "," & Len(x(2, 2))
Range("a1").Value = x(1, 1)
Range("b1").Value = x(1, 2)
Range("a2").Value = x(2, 1)
Range("b2").Value = x(2, 2)
End Sub
Weitere Informationen über diesen Bug finden Sie hier:
XL2000/2002/2003: Data May Be Truncated After 1,835 Characters When You Transfer Array Data to Cells in an Excel Worksheet
http://support.microsoft.com/?scid=kb;en-us;832136
Ein interessanter, noch nicht behobener Bug in Microsoft Excel (Stand 22.07.2004).
Anzeige

124 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige