拉信息我有一個約140,000測試文件的數據庫。我期待循環遍歷每個文件夾,並從文本和excel文件的文件名中提取信息,以便將數據組織得更好一些。如果文件名包含特定的文本,然後從文件名(Excel VBA)
我找到了選擇文件夾路徑的方法,並使用下面的代碼導入關於每個文件的信息。這很好,除了我只想從excel和文本文件中提取信息,我也想從文件名中提取額外的文本信息。比如我可能有一個名爲文件:
「444555_CAT1010EL_650-700-800C-2小時laging不CH4.txt」
而且我會想打印:
的6個號碼的在這個例子中的名字的開頭(它們可以是任何東西)在一列中「444555」
在另一列中打印「1010EL」前面的3個字母(它們可以是任何東西)。在這個例子中「CAT」
「CH4」中的最後一欄,甚至有「CH4」一列,在該列
如果文件名中包含「CH4」把一個X有一列「laging」,如果文件名中包含「laging」,則在任何位置放入一個X在該列中
提前感謝您的幫助。
Sub Compile3()
Dim oShell As Object
Dim oFile As Object
Dim oFldr As Object
Dim lRow As Long
Dim iCol As Integer
Dim vArray As Variant
vArray = Array(10, 0, 1, 156, 2, 4, 144, 146, 183, 185)
'0=Name, 31=Dimensions, 1=Size, 163=Vertical Resolution
Set oShell = CreateObject("Shell.Application")
'-------------------ROW INFO INPUT OPTIONS-----------------
'' 1)
' lRow = 1
' 2) find first empty row in database for bottletracker
'
Dim iRow As Long
iRow = Cells.find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
lRow = iRow
'------------------------------------------------------------
With Application.FileDialog(msoFileDialogFolderPicker)
.title = "Select the Folder..."
If .Show Then
Set oFldr = oShell.Namespace(.SelectedItems(1))
With oFldr
'Column header information
For iCol = LBound(vArray) To UBound(vArray)
Cells(lRow, iCol + 4) = .getdetailsof(.items, vArray(iCol))
Next iCol
For Each oFile In .items
lRow = lRow + 1
For iCol = LBound(vArray) To UBound(vArray)
Cells(lRow, iCol + 4) = .getdetailsof(oFile, vArray(iCol))
Next iCol
Next oFile
End With
End If
End With
End Sub
我認爲你需要澄清你的代碼中的文件名被檢索。 – BlueMonkMN
這不是VB.NET代碼 - 該標籤包含有用的文本,以便在不使用它們時提供指導。請閱讀[問]並參加[tour] – Plutonix
@BlueMonkMN我使用內置的FileDialog(msoFileDialogFolderPicker)函數,該函數允許我爲我的子文件夾選擇任何文件夾路徑。 然後使用「With」我爲該文件夾路徑中的每個文件提取我想要的信息(使用.getdetailsof)。此功能適用於拉取文件大小,名稱等。 我希望從我導入的實際文件名中抽取字符.getdetailsof – Picapiedra