2017-01-24 9 views
0

Я пытаюсь создать цикл, используя VBA в Excel, чтобы сделать мой код менее коротким. В настоящее время у меня есть:Использование цикла для создания списка

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

Это продолжается до ppath15 и ячейки N24. Код просто создает список адресов каталога для некоторых изображений, которые я затем вставляю в PowerPoint или Word. У меня уже есть рабочий код для этого, но он не зациклен. То, что я пытаюсь найти, - это способ ссылки на имя (например, путь (i)?) И ​​ячейку (например, N (j)?) С использованием цикла.

Примечание: «Справочник» выше является именованной ячейкой который содержит папку адрес, например, "C:". диапазон поиска (N10 в N24) содержит имена JPG

Спасибо за вашу помощь

ответ

0

возможное решение

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 

Другая возможность:

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

Спасибо пользователю3598756 за очень быстрый ответ. Я попробовал первое решение, и оно работает! Сейчас мой код намного короче. – volvader

 Смежные вопросы

  • Нет связанных вопросов^_^