我有两个专栏,国家和企业。每个国家都有4种类型的企业(采矿,货运,航运,航班),每个国家至少有一个企业,例如
Country | Business
---------------------
England mining
England trucking
Spain mining
Germany mining
Germany trucking
Germany shipping
Germany flights
我有大约170个国家/地区的文件夹。我需要在每个国家/地区为其拥有的特定业务创建文件夹。我遇到了路径问题。这是代码的一部分。我正朝着正确的方向前进?
Dim z As Integer
Dim row,col,c As String
ActiveSheet.Range("A2").Select
For row = 2 To maxrows
col = 2
z = col + 1
c = Cells(row, col)
If Len(dir("C:\Users\patelwa\Documents\macr\& c &" & Cells(row, z), vbDirectory)) = 0 Then
MkDir ("C:\Users\patelwa\Documents\macr\& c &" & Cells(row, z))
On Error Resume Next
End If
Next row
答案 0 :(得分:0)
我对这条道路的看法是:
"C:\Users\patelwa\Documents\macr\& c &"
"\"
和"/"
是完全一样的(我没有经过测试)......您可能也需要对此进行测试。正如@hnk所说,也许你可以使用Application.PathSeparator(变为" /"或" \"取决于 系统(Windows,Mac等)
"/"
和c
Cells(row,z)
醇>
尝试使用此代码(您可能需要稍微调整一下)
Dim z As Integer
Dim row,col,c As String
Dim foldername As String
ActiveSheet.Range("A2").Select ' I don't get the point of that line
For row = 2 To maxrows
col = 2
c = Cells(row, col)
foldername = "C:/Users/patelwa/Documents/macr/" & c & "/" & Cells(row, col+1)
If Dir(foldername, vbDirectory) = "" Then
MkDir (foldername)
On Error Resume Next
End If
Next row
只是一个优化提示:如果不是真的需要,请避免.Select
。但也许你在这里使用它回到左上角(为了查看数据)
注意:此代码假设国家/地区名称与文件夹名称匹配...您可能还需要测试当前存在的国家/地区文件夹:如果不是,您将收到错误(由{{捕获) 1}})
您可以在On Error Resume Next
之前添加
if
根据需要创建国家/地区文件夹。
最后一点:检查用于文件夹名称的单元格中是否有空格或特殊字符(但我想你已经检查过了)