If someone created folder "156481 ....." (... = {name}) func pass Create folder
Formula:
Option Explicit
Sub CreateFolder(ByVal Data_Table As Range, ByVal Data_Table1 As Range, ByVal Data_Table2 As Range, ByVal Data_Table3 As Range)
Dim tmpArr, tmpArr1, tmpArr2, tmpArr3, Arr(), Arr1(), Arr2(), Arr3()
Dim lR As Long, lC As Long
Dim tmp1 As String, tmp2 As String, tmp3 As String, tmp4 As String, tmp5 As String, sRoot As String, tmpsRoot As String, folder As String
On Error GoTo ExitSub
tmpArr = Data_Table2.Value
tmpArr1 = Data_Table1.Value
tmpArr2 = Data_Table.Value
tmpArr3 = Data_Table3.Value
sRoot = "M" & ":\" & Sheet1.Range("O1") & "\test\"
ReDim Arr(1 To UBound(tmpArr, 1), 1 To UBound(tmpArr, 2))
ReDim Arr1(1 To UBound(tmpArr1, 1), 1 To UBound(tmpArr1, 2))
ReDim Arr2(1 To UBound(tmpArr2, 1), 1 To UBound(tmpArr2, 2))
ReDim Arr3(1 To UBound(tmpArr3, 1), 1 To UBound(tmpArr3, 2))
With CreateObject("Scripting.FileSystemObject")
For lC = 1 To UBound(tmpArr, 2)
For lR = 1 To UBound(tmpArr, 1)
tmp1 = Trim(tmpArr(lR, lC))
tmp3 = Trim(tmpArr1(lR, lC))
tmp4 = Trim(tmpArr2(lR, lC))
If tmp4 = "Begin" Then
tmp3 = Replace(tmp3, Chr(47), "-") '47 /
tmpsRoot = sRoot & tmp3 & "\"
If Not .FolderExists(tmpsRoot) Then .CreateFolder tmpsRoot
End If
If tmp4 = "Dot" Then
Dim tam() As String
tmp1 = Replace(tmp1, Chr(47), "_") '47 /
tmp1 = Replace(tmp1, Chr(92), " ") '92 \
tmp1 = Replace(tmp1, Chr(42), " ") '42 *
tmp1 = Replace(tmp1, Chr(58), " ") '58 :
tmp1 = Replace(tmp1, Chr(34), " ") '34 "
tmp1 = Replace(tmp1, Chr(64), " ") '64 @
tmp1 = Replace(tmp1, Chr(62), " ") '62 >
tmp1 = Replace(tmp1, Chr(60), " ") '60 <
tmp1 = Replace(tmp1, Chr(124), " ") '124 |
tmp1 = Replace(tmp1, " ", " ")
If lC = 1 Then
tmp2 = tmpsRoot & tmp1
tmp5 = tmpsRoot & Trim(tmpArr3(lR, lC)) & Chr(42)
Else
tmp2 = Arr(lR, lC - 1) & "\" & tmp3 & " " & tmp1
End If
Arr(lR, lC) = tmp2
'folder = Len(Dir(tmp5, vbDirectory))
If Dir(tmp5, vbDirectory) = vbNullString Then .CreateFolder tmp2
'If Not .FolderExists(folder) Then .CreateFolder tmp2
End If
Next
Next
End With
ExitSub:
End Sub
Sub Main()
Dim SrcRng As Range, SrcRng1 As Range, SrcRng2 As Range, SrcRng3 As Range
Set SrcRng = Sheet2.Range("A1:A3000")
Set SrcRng1 = Sheet2.Range("B1:B3000")
Set SrcRng3 = Sheet2.Range("D1:D3000")
Set SrcRng2 = Sheet2.Range("E1:E3000")
CreateFolder SrcRng, SrcRng1, SrcRng2, SrcRng3
End Sub
Sub Del()
Sheet1.Range("A1:E3000").ClearContents
End Sub
Sub paste()
Worksheets("Sheet1").Range("A1").Select
ActiveSheet.PasteSpecial NoHTMLFormatting:=True
End Sub
Sub auto()
paste
Main
Del
End Sub