我要帶贓物在此:我想你想創建一個綜合的目錄和子目錄名稱的字符串與之間的空間。
這裏是假設在當前目錄中多個子文件夾,並使用FileSystemObject
和Folder
你描述爲每一個(從陣列中舉行,訪問),可以創建一個腳本。請注意,您需要設置對Microsoft腳本運行時的引用。我在C:驅動器上使用文件路徑對我的文檔進行了測試,結果正常。希望這有助於:
Sub CreateStringsForSubfolders()
'To use this you need a reference set for Microsoft Scripting Runtime
'~~>dim variables and set initial values
Dim fsObject As New FileSystemObject
Dim fFolder As Folder
Set fFolder = fsObject.GetFolder("\\Tardis\Data\[PATH]\HELLO")
Dim fSubfolder As Folder
Dim aNames() As String
ReDim aNames(1) As String
'~~>loop to create name for each subfolder
For Each fSubfolder In fFolder.SubFolders
ReDim Preserve aNames(UBound(aNames) + 1)
aNames(UBound(aNames)) = fFolder.Name & " " & fSubfolder.Name
Debug.Print aNames(UBound(aNames)) 'press [CTRL + G] to see the names created
Next
End Sub
這裏是您的要求修改代碼。我不確定你在做什麼(如果你在你的問題中包含了這些信息可能會有幫助),所以我假設你只是想將子文件夾添加到數組中。如果您確實想要創建字符串中始終有兩個文件夾的名稱,請使用Else
部分中的註釋替代方法。
Sub CreateStringsForSubfolders2()
'~~>dim variables and set initial values
Dim sPath As String
Dim fsObject As New FileSystemObject
Dim fFolder As Folder
Set fFolder = fsObject.GetFolder("\\Tardis\Data\[PATH]")
Dim fSubfolder As Folder
Dim fSubfolder2 As Folder
Dim aNames() As String
ReDim aNames(1) As String
'~~>loop to create name for each subfolder and any sub-subfolders
For Each fSubfolder In fFolder.SubFolders
ReDim Preserve aNames(UBound(aNames) + 1)
sPath = fSubfolder.Path
Set fSubfolder = fsObject.GetFolder(sPath)
If fSubfolder.SubFolders.Count <> 0 Then
For Each fSubfolder2 In fSubfolder.SubFolders
ReDim Preserve aNames(UBound(aNames) + 1)
aNames(UBound(aNames)) = fSubfolder.Name & " " & _
fSubfolder2.Name
Debug.Print aNames(UBound(aNames))
Next fSubfolder2
Else
aNames(UBound(aNames)) = fSubfolder.Name
'or fFolder.Name & " " fSubfolder.Name
Debug.Print aNames(UBound(aNames))
End If
Next
End Sub
目前尚不清楚你的問題是什麼。 「打印」在哪裏?通常,您使用「&」連接VBA中的字符串,如果您需要代碼也可以在Mac上工作,則可以使用Application.PathSeparator而不是「\」。 –
如果你的意思是你試圖打印一個字符串,將文件夾名稱合併成一個句子,用空格分隔而不是路徑分隔符,你可以使用提供的info @TimWilliams提供的'Split'和'Join' VBA String函數。 – Blackhawk
@Blackhawk有沒有一個例子可以使用'Split'和'Join'在VBA中使用文件夾路徑?另外我已經澄清了我在問題中的措詞。 – Julz