Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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??
Eine Menge reden, aber nichts sagen können viele...
Antworten 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
Antworten 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?
Eine Menge reden, aber nichts sagen können viele...
Antworten 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
Antworten Top


Gehe zu:


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