我在VBA中遇到問題,我想根據組合框值獲取文件夾的路徑。使用組合框查找基於單元格值的文件夾路徑
看,我有稱爲「TAG」 Excel工作表,其中在他的第一列我有很多的值,像P36300000,C36300001等(圖像下方)
我已經創建了一個宏循環瀏覽表單欄並根據每個單元格值創建一個文件夾。
的「P」是指它的主項,而「C」意味着它是項目的只是一個組成部分。
即,它創建包含P36300000文件夾:3C6300001,C36300002,C36300003,C36300004,C36300005,C36300006和P36300007包含C36300008。
每一個(主文件夾和組件)有一個DT文件夾,其中的Excel文件的位置。 (不revelant但是,以防萬一)
組件的路徑應該是這樣的 H:\工作\項目\ 2017年\ A1 \ P36300000 \ C36300001
和主像 H:\ Work \ Project \ 2017 \ A1 \ P36300000
我的代碼是這樣的,但它不能得到組件文件夾,只有主要的一個。
Option Explicit
Private Sub btnPath_Click()
Dim MyValue As String
Dim subFldr As Object
Dim msg As String
Dim fldr As String
Worksheets("TAG").Visible = True
MyValue = cmbTAG.Value ' Selected Value of the cmbBOX
fldr = ActiveWorkbook.Path & "\2017"
If (Left(cmbTAG.Value, 1) = "P") Then ' If the Folder is Primary
fldr = ActiveWorkbook.Path & "\2017\A1"
If Dir(fldr, vbDirectory) <> "" Then
For Each subFldr In CreateObject("Scripting.FileSystemobject").GetFolder(fldr).Subfolders
If subFldr Like "*\" & MyValue Then msg = subFldr.Name
Next subFldr
txtRutaPadre.Text = fldr & "\" & msg
txtRutaDT.Text = fldr & "\" & msg & "\DT"
End If
ElseIf (Left(cmbTAG.Value, 1) = "C") Then ' if it is a Component.
fldr = ActiveWorkbook.Path & "\2017\A1"
If Dir(fldr, vbDirectory) <> "" Then
For Each subFldr In CreateObject("Scripting.FileSystemobject").GetFolder(fldr).Subfolders
If subFldr Like "*\" & MyValue Then msg = subFldr.Name
Next subFldr
txtPrimary.Text = fldr & "\" & msg
txtDT.Text = fldr & "\" & msg & "\DT"
End If
End If
End Sub
謝謝你的時間!
爲什麼不能得到它的組件文件夾? ... 怎麼了? ...這些問題的答案應該從一開始就在你的帖子中。 – jsotola
可能是因爲你缺少這一行上的右括號'fldr = ActiveWorkbook.Path&「\ 2017 \ A1' – pheeper
@jsotola它不顯示子文件夾,因爲當我按下帶有Component的按鈕時,它沒有得到主路徑(P3 ...),然後組件(\ P3 ... \ C3 ...) 我不知道爲什麼。 – Matto