如何解决使用 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 举报,一经查实,本站将立刻删除。