2016-12-29 3 views
2

Уважаемая община StackOverflow,Объединяя текст двух ячеек, как выход для FilePath

я работаю над программой, которая делает структуру карты в зависимости от индекса, сделанный в Excel.

Этот индекс является переменным, что означает, что имена глав могут быть разными во все времена. Количество глав не всегда одинаково. Поскольку я использовал проверку данных для выбора того, что будет в этой главе, я не могу получить нумеруемую главу в той же самой ячейке, используя опцию concatenate. Смотрите здесь:

Image1

В зависимости от индекса я хотел бы структуру папок индекса. Я могу заставить это работать для C56 и D56. Таким образом, это означает одну главу. Это код:

Sub Try_This_Maybe_Multiple() 

    Dim myDir As String 
    myDir = Sheets("Invulformulier").Range("J6") & "\" & "Material data book" & "\" & Sheets("Index").Range("C56") & " " & Sheets("Index").Range("D56") 
    MkDir myDir 
    On Error GoTo 0 

End Sub 

Теперь я пытался поставить в Range("C56:C70") и Range("D56:D70"). (C56 - где начинается индекс) К сожалению, это не сработало. Я также искал несколько сайтов и искал разные вещи. Это тоже не дало результатов.

Краткое описание; Я хочу объединить текст ячеек C56 и D56 в коде. И тогда то же самое для C57 и D57 и т. Д. Без необходимости писать его для каждой отдельной строки.

Идея в конечном счете, является то, что человек будет размещать файлы в формате PDF в структуре папок, где она принадлежит, а затем делает комбинированный файл в формате PDF, как в структуре папки:

Image2

Я надеюсь, что мой вопрос достаточно ясно. Если нет, спросите меня, какая информация требуется.

Спасибо.

ответ

2

Просто используйте цикл For, чтобы пройти через ячейки в диапазоне и создать папки на основе строк. Предполагая, что ваш диапазон ячеек разделен рядами между ними и работает от строки 56 до 70, попробуйте следующее:

Sub Test() 

    Dim myDir As String 
    Dim x as long 

    For x = 56 to 70 Step 2 
     myDir = Sheets("Invulformulier").Range("J6") & "\" & _ 
       "Material data book" & "\" & Sheets("Index").Range("C" & x) & " " & _ 
       Sheets("Index").Range("D" & x) 
     MkDir myDir 
    Next x  

End Sub 
+1

Thx! Это отлично поработало. Я думал о таком решении, но не знал, как его настроить. – Jay

+0

Нет проблем, если вы удовлетворены ответом, вы можете пометить ответ как правильный. Хороший день, J – Jordan

+0

Я в настоящее время ищу решение для «Ошибка времени выполнения 75»: ошибка доступа к файлу/файлу ». Вероятно, это потому, что я ввел «x = 56 до 80», пока есть только данные до ячейки 72. – Jay

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

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