微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 Excel 中的 2 列值创建文件夹

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

我有found a bit of code that someone else posted,它有效,但我需要在创建的文件夹中的姓名和姓氏之间添加一个空格。 原发帖人说他们确实设法添加一个空间,但从未说明如何添加

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,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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。