2017-01-24 4 views
0

Ich versuche, eine Schleife mit VBA in Excel zu erstellen, um meinen Code weniger klumpig zu machen. Derzeit habe ich folgendes:Verwenden einer Schleife zum Erstellen einer Liste

path1 = Sheets("A").Range("Directory").Value & "\" & Sheets("Selection").Range("N10").Value & ".jpg" 
path2 = Sheets("A").Range("Directory").Value & "\" & Sheets("Selection").Range("N11").Value & ".jpg" 

Dies geht bis zu ppath15 und Zelle N24. Der Code erstellt einfach eine Liste von Verzeichnisadressen für einige Bilder, die ich dann in PowerPoint oder Word einfügen werde. Ich habe bereits den Arbeitscode dafür, aber es ist auch nicht geloopt. Was ich zu finden versuche, ist eine Möglichkeit, den Namen (z. B. Pfad (i)?) Und Zelle (z. B. N (j)?) Mit einer Schleife zu referenzieren.

Hinweis: "Directory" oben ist eine benannte Zelle dass enthält einen Ordner Adresse zB "C:". Die Lookup-Bereich (N10 bis N24) enthält die jpg Namen

Danke für Ihre Hilfe

Antwort

0

eine mögliche Lösung

Dim paths() As Variant 
Dim i As Long 

paths = Application.Transpose(Sheets("Selection").Range("N10:N24").Value) 
For i = LBound(paths) to UBound(paths) 
    paths(i) = Sheets("A").Range("Directory").Value & "\" & paths(i) & ".jpg" 
Next i 

eine andere Möglichkeit:

Dim i As Long 
Dim cell As Range 

With Sheets("Selection").Range("N10:N24") 
    ReDim paths(1 to .Rows.Count) As String 
    For i = 1 to .Rows.Count 
     paths(i) = Sheets("A").Range("Directory").Value & "\" & cell & ".jpg" 
    Next i 
End With 
+0

Danke user3598756 für die sehr schnelle Antwort. Ich habe die erste Lösung ausprobiert und es funktioniert! Macht meinen Code jetzt viel kürzer. – volvader

Verwandte Themen