小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VBA批量重命名文件與子文件夾

 風(fēng)聲之家 2022-05-26 發(fā)布于江蘇

點(diǎn)擊視頻

VBA批量重命名文件與子文件夾

原創(chuàng) VBA愛(ài)好者 VBA愛(ài)好者 2022-05-01 12:00 發(fā)表于北京

收錄于合集

#VBA54
#文件11

    今天說(shuō)說(shuō)怎么利用VBA重命名文件夾的文件。

1.代碼思路

    (1) Shell.BrowseForFolder獲取文件夾路徑。

    (2)DIR提取文件夾下的文件與子文件夾。

    (3)在工作表寫(xiě)好新路徑,利用name語(yǔ)句批量重命名。

2.主要知識(shí)點(diǎn)

    Shell.BrowseForFolder可以創(chuàng)建一個(gè)對(duì)話框讓用戶選擇一個(gè)文件夾,然后返回所選文件夾的Folder對(duì)象??梢詫?shí)現(xiàn)獲取文件夾的絕對(duì)路徑。

    這里就不贅述了,不了解的可以去看看這篇文章:VBA打開(kāi)對(duì)話框選擇文件夾

    DIR函數(shù)提取文件路徑,在這一篇文章也講過(guò):DIR函數(shù)遍歷文件。

3.代碼示例

    先運(yùn)行Sub 批量獲取文件名(),然后寫(xiě)入新文件名,最后運(yùn)行Sub 批量重命名()。

Sub 批量獲取文件名()
Cells = "" '清空工作表內(nèi)容
Dim sfso
Dim myPath As String
Dim Sh As Object
Dim Folder As Object
Application.ScreenUpdating = False
On Error Resume Next
Set sfso = CreateObject("Scripting.FileSystemObject")
Set Sh = CreateObject("shell.application")
Set Folder = Sh.BrowseForFolder(0, "", 0, "")
If Not Folder Is Nothing Then
myPath = Folder.Items.Item.Path
End If
Application.ScreenUpdating = True
Cells(1, 1) = "舊版名稱(chēng)"
Cells(1, 2) = "文件類(lèi)型"
Cells(1, 3) = "所在位置"
Cells(1, 4) = "新版名稱(chēng)"
Call 直接提取文件名(myPath & "\")
End Sub
Sub 直接提取文件名(myPath As String)
Dim i As Long
Dim myTxt As String
i = Range("A1048576").End(xlUp).Row
'這里的31,是把0、1、2、4、8、16 '加起來(lái)得到的,表示這些類(lèi)型的文件都讀取 myTxt = Dir(myPath, 31)
Do While myTxt <> ""
On Error Resume Next
If myTxt <> ThisWorkbook.Name And myTxt <> "." And myTxt <> ".." And myTxt <> "081226" Then
i = i + 1
Cells(i, 1) = "'" & myTxt ''轉(zhuǎn)成文本 '形成超鏈接 可以打開(kāi)文件 Cells(i, 1).Hyperlinks.Add Anchor:=Cells(i, 1), Address:=myPath & myTxt '判斷為文件夾還是文件 If (GetAttr(myPath & myTxt) And vbDirectory) = vbDirectory Then Cells(i, 2) = "文件夾" Else Cells(i, 2) = "文件" End If '存放文件夾的路徑并形成超鏈接 Cells(i, 3) = Left(myPath, Len(myPath) - 1) Cells(i, 3).Hyperlinks.Add Anchor:=Cells(i, 3), Address:=Left(myPath, Len(myPath) - 1) End If
myTxt = Dir
Loop
End Sub
Sub 批量重命名()
Dim y_name As String
Dim x_name As String
For i = 2 To Range("A1048576").End(xlUp).Row
y_name = Cells(i, 3) & "\" & Cells(i, 1) '舊路徑
x_name = Cells(i, 3) & "\" & Cells(i, 4) '新路徑
On Error Resume Next If Cells(i, 4) <> "" Then Name y_name As x_name 'Y名字被改成X名字
Next
MsgBox "重命名完成"
End Sub

4.操作視頻(41s)

00:41

歷史文章推薦

1.可以延時(shí)關(guān)閉的VBA消息框

2.VBA網(wǎng)抓解決漢字轉(zhuǎn)拼音

3.VBA給微信聯(lián)系人發(fā)送消息

VBA愛(ài)好者

如果你也喜歡VBA,就關(guān)注我吧~

55篇原創(chuàng)內(nèi)容

公眾號(hào)

VBA愛(ài)好者

贊賞二維碼喜歡作者

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多