使用 Excel 中的 2 列值创建文件夹

Create folders using 2 column values from Excel

所以我需要从电子表格制作一大堆文件夹。 我在 A 列中有姓氏,在 B 列中有一个人的名字,我需要基于此生成文件夹。

我有 ,可以,但我需要在创建的文件夹中的名字和姓氏之间添加一个 space。 原发布者说他们确实设法添加了一个 space,但从未说明如何添加。

Sub MakeFoldersForEachRow()
Dim Rng As Range
Dim maxRows, maxCols, r, c As Integer
Dim s As String
Set Rng = Selection
maxRows = Rng.Rows.Count
maxCols = Rng.Columns.Count
For r = 1 To maxRows
    s = ""
    For c = 1 To maxCols
        s = s & Rng(r, c)
    Next c
    If Len(Dir(ActiveWorkbook.Path & "\" & s, vbDirectory)) = 0 Then
        MkDir (ActiveWorkbook.Path & "\" & s)
        On Error Resume Next
    End If
Next r

结束子

请尝试下一个代码:

Sub createFoldNamesFromTwoColumns()
 Dim sh As Worksheet, lastR As Long, fldName As String, i As Long
 
 Set sh = ActiveSheet 'use here your necessary sheet
 lastR = sh.Range("A" & sh.Rows.count).End(xlUp).row
 For i = 1 To lastR
    fldName = sh.Range("A" & i) & " " & sh.Range("B" & i)
    If Dir(ActiveWorkbook.Path & "\" & fldName, vbDirectory) = "" Then
        MkDir ActiveWorkbook.Path & "\" & fldName
    End If
 Next i
End Sub

已编辑:

我现在可以看到你的最后一个请求,意思是处理选定的列:

Sub createFoldNamesFromTwoSelectedColumns()
 Dim sh As Worksheet, rngSel As Range, C1 As Long, lastR As Long, fldName As String, i As Long
 
 Set sh = ActiveSheet
 Set rngSel = Selection

 If rngSel.Columns.count <> 2 Then MsgBox "You must select two columns!": Exit Sub
 C1 = rngSel.cells(1).Column: Stop
 
 lastR = sh.cells(sh.Rows.count, C1).End(xlUp).row
 For i = 1 To lastR
    fldName = sh.cells(i, C1) & " " & sh.cells(i, C1 + 1)
    If Dir(ActiveWorkbook.Path & "\" & fldName, vbDirectory) = "" Then
        MkDir ActiveWorkbook.Path & "\" & fldName
    End If
 Next i
End Sub