Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Problem Array to Range
08.03.2007 19:47:00
Dieter
Hallo erst einmal...
kleines Problem, und heute bestimmt eine Stunde gegoogelt... Aber leider ohne Ergebniss.
Option Base 1
Sub TestArray()
Dim arrTest     As Variant
'*** Die Zellen A1:E2 werden als Array eingelesen
arrTest = Range(Cells(1, 1), Cells(2, 5))
'*** Mit einer Zeile wird der Inhalt des Array in einen definierten _
Range geschrieben.
Range(Cells(5, 1), Cells(UBound(arrTest, 1) + 4, UBound(arrTest, 2))) = arrTest
End Sub

In dem SubTestArray wird ein Range in ein Array geschrieben, und das ganze geht auch genauso schön zurück.
Was ist aber, wenn ich nur einen Teilbereich des Arrays in einen Range schreiben möchte. Zum Beispiel die Zeile 1.
Denn Range zu definieren ist nicht schwer, aber kann ich den Inhalt des Arrays zurück schreiben... und jetzt kommts: OHNE eine Forschleife, in der ich dann Spalte für Spalte zurück schreibe... in der Art:
Range(cells(4, 1), cells(4, uBound(arrTest, 2)) = ?array?
Und so mache ich es jetzt... und es ist mehr als deprimierent.
Sub TestArray2
Dim arrTest     As Variant
dim iSpalte      As Integer
'*** Die Zellen A1:E3 werden als Array eingelesen
arrTest = Range(Cells(1, 1), Cells(2, 5))
for iSpalte = 1 to uBound(arrTest,2)
cells(4,iSpalte)=arrTest(1, iSpalte)
next iSpalte
End Sub

Schön wenn mir jemand helfen kann.
In diesem Sinne noch einen schönen Abend...
Dieter W.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem Array to Range
08.03.2007 20:22:53
Josef
Hallo Dieter,
ohne Schleife geht's nur so.
Sub test()
Dim varValues As Variant, varTemp As Variant
Dim lngRow As Long

lngRow = 8

varValues = Range("A1:C25")

varTemp = Array(varValues(lngRow, 1), varValues(lngRow, 2), varValues(lngRow, 3))

Range("E1:G1") = varTemp

End Sub

Gruß Sepp
Anzeige
AW: Problem Array to Range
08.03.2007 21:39:21
Dieter
Hallo Sepp,
danke erst einmal...
Okay, so funktioniert es, aber wenn ich 50 Werte habe, oder eine nicht definierte, dann komme ich um eine Schleife nicht herum. Aber unter Umständen ist es schneller, die Daten in ein Hilfsarray zu schreiben, als direkt in die Zellen.
@all
Gibt es keine andere Lösungen
Bitte ruhig auch melden, wenn es keine Lösung gibt. So nur mal als Denkanstoss... Wenn man zwei Ranges verbinden möchte, gibt es den Union Befehl. Gibt es sowas vielleicht auch für einen Array.
In diesem Sinne noch eine angenehmen Nacht
Dieter W.
AW: Problem Array to Range
08.03.2007 21:59:00
Uduuh
Hallo,
die Daten erst in ein Hilfsarray zu schreiben ist auf jeden Fall schneller als in die Zellen zu schreiben. Eine andere Möglichkeit kenne ich nicht.
Gruß aus’m Pott
Udo

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige