【问题标题】:Create a folder and subfolder when selecting a cell选择单元格时创建文件夹和子文件夹
【发布时间】:2020-05-26 21:49:31
【问题描述】:

我是 VBA 的新手,所以我希望你能帮助我。 我想在给定路径内创建一个文件夹。在文件夹内,我想要一个子文件夹。文件夹的名称将显示在 Excel 工作表的 A 列中,子文件夹的名称将显示在 B 列中。路径将在 C 列中。

我希望能够单击 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 列中识别所选单元格的行,从该行中获取文件夹、子文件夹和路径的相应名称,并创建文件夹和子文件夹。 知道这个函数应该是什么样子吗?请记住,两天前我已经开始“玩”VBA,所以我的专业知识非常有限。 谢谢大家的支持。

【问题讨论】:

标签: vba button subdirectory create-directory


【解决方案1】:

你可以这样做。

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

我的设置:

代码运行后:

【讨论】:

  • 谢谢,ASH。您的代码正在从 A 列(您的设置)创建所有给定的路径。我只想创建 A 列与我选择的行的交点给出的路径。
  • 您可以过滤掉不需要的行。你指的是这个吗?
  • 在您的 excel 设置中,我会将单元格 C1:C3 视为宏的触发器。因此,每次我从 C 列中选择一个单元格时,您的宏都应该触发。这将通过使用 Private Sub Worksheet_SelectionChange 来实现(请参阅我的第一篇文章)。 Now, when selecting one of the C1:C3 cells, your code creates all the paths from cells A1:A3.我需要的是只创建在所选 C 单元格的行和 A 列之间的交点处找到的路径。例如,如果我选择 C2 行,则应该只创建来自 A2 的路径。如果我选择 C3,则只有 A3 的路径等等。
猜你喜欢
  • 1970-01-01
  • 2022-07-26
  • 2020-07-18
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
  • 2022-06-13
相关资源
最近更新 更多