我有幾張日表,第每天固定匯出到“日表匯出原始”檔案夾中,表格系統匯出名稱后面自帶一串數字,而且每天匯出的表格數字都不一樣的。由于統計需要每天都要把表格后面的_和數字刪掉,只保留前面的中文名稱,雖說改個名作業量不大,不過每天改也很煩。
求VBA陳述句,執行后自動把每個檔案名稱后面_和數字刪掉。我的思路是搜檔案夾中的所有檔案,按關鍵字例如名稱有“個人日表”的改為“個人日表.xlsx”,名稱有“部門日表”的改為“部門日表.xlsx”,名稱有“產品銷售日表”的改為“產品銷售日表.xlsx”
不過在下是小白,陳述句東拼西湊改來改去會一點,自己寫不出來。求哪位老師有空幫幫忙。
C:\Users\Administrator\Desktop\日表匯出原始
個人日表_20020201017893251.xlsx
部門日表_20020201017345236.xlsx
產品銷售日表_200202010176982.xlsx
uj5u.com熱心網友回復:
選擇檔案夾里面去掉_+數字后檔案不能同名字Sub demo()
Dim path As String, name As String, arr(), index As Long, reg As Object
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "選擇改名檔案夾"
.InitialFileName = Application.DefaultFilePath
.Show
If .SelectedItems.Count > 0 Then
path = .SelectedItems(1) & "\"
Else
Exit Sub
End If
End With
name = Dir(path & "*.xl*", vbDirectory)
Do While Len(name) > 0
ReDim Preserve arr(0 To index)
arr(index) = name
index = index + 1
name = Dir
Loop
Dim i As Long
Set reg = CreateObject("vbscript.regexp")
With reg
.Pattern = "_(\d)+"
On Error Resume Next
For i = 0 To index - 1
If .test(arr(i)) Then
Name path & arr(i) As path & .Replace(arr(i), "")
End If
Next i
On Error GoTo 0
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/181321.html
標籤:VBA
