Создать папку и подпапку при выборе ячейки - PullRequest
0 голосов
/ 11 февраля 2020

Я полный новичок ie в VBA, поэтому я надеюсь, что вы могли бы помочь мне с этим. Я хочу создать папку внутри данного пути. Внутри папки я хочу подпапку. Имя папки будет указано в столбце A, а подпапка - в столбце B рабочего листа Excel. Путь будет в столбце C.

enter image description here

Я хотел бы иметь возможность щелкнуть ячейку в столбце D, которая активирует макрос, который затем создаст папку и подпапку. Я надеялся, что смогу добиться этого с помощью этого кода:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
   If Not Application.Intersect(Target, Range("c2:c10000")) Is Nothing Then Call CreatePath
End Sub

Поэтому мне нужна функция CreatePath. Когда ячейка выбрана в столбце D, функция CreatePath должна идентифицировать строку выбранной ячейки из столбца D, взять из этой строки соответствующее имя папки, подпапки и пути и создать папку и подпапку. Есть идеи, как должна выглядеть эта функция? Пожалуйста, имейте в виду, что я начал «играть» два дня в go с VBA, поэтому мои ноу-хау очень ограничены. Спасибо всем за вашу поддержку.

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете сделать это следующим образом.

Sub CreateFoldersandSubFolders()

'Execute next line in case of error.
On Error Resume Next

'Loop through all the cells  in column 1 in Active Sheet.
For i = 1 To ActiveSheet.UsedRange.Rows.Count

'Name of the Folder
sFolderPath = Cells(i, 1)  'Replace This.Workbook.Path with any location Example "C:\" & Cells(i,1)

'Creating Folder Using Shell Function
Shell "cmd /c mkdir """ & sFolderPath & """", vbHide 'It will Execute Dos Command and use MKDIR to Make Directory of sFolderPath Value

'To continue the Loop
Next i

'Displaying Message
MsgBox "Folders Created"

End Sub

Мои настройки:

enter image description here

После выполнения кода:

enter image description here

...