VBA Array in Tabelle übertragen
#1
Hallo Leute

Ich tue mir noch echt schwer mit Array's...

Ich möchte ein Array das über eine Schleife eingelesen worden ist, auf einmal in einen Bereich setzen, jedoch setzt er immer nur den ersten Eintrag des Array über den Ganzen Bereich... 


Code:
Dim Dateinamen(1 To 300)
For Each objDatei In objDateienliste
   
    If Not objDatei Is Nothing Then
         i = i + 1
         
          Dateinamen(i) = strVerzeichnis & objDatei.Name
         
    End If
Next objDatei

End With


ThisWorkbook.Sheets("Tabelle1").Range("A1:A301") = Dateinamen

was mach ich Falsch??
Top
#2
Hallo,

da das ein 1-dimensionales Array ist, geht es so (ungeprüft)

Code:
Range("A1").rezeize(ubound(Dateinamen)) = application.transpose(Dateinamen)

(offtopic: besser sehr kurze Bezeichner wie "Ar" verwenden)

Siehe die mal http://snb-vba.eu/VBA_Arrays_en.html an

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Frogger1986
Top
#3
Hey Fennek! 

Vielen Dank!

Code:
Sheets("tabelle1").Range("A1:A301").Resize(UBound(Dateinamen)) = Application.Transpose(Dateinamen)

war genau Richtig!!

wie ist das mit mehrdimensionalen Arrays?
Top
#4
Hallo,

aus dem Gedächtnis:

Code:
Ar = Range("A1:B5")
Range("D1").Resize(ubound(Ar), Ubound(Ar,2)) = Ar

Ar kann auch mit Dim Ar(4, 1) (null-bassiert) erzeugt worden sein.

mfg

Teste mal:

Code:
Ar = split("qwe asd")
redimPreserve Ar(ubound(Ar),0)
Range("A1").resize(Ubound(Ar)) = Ar
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Frogger1986
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste