因作業需要,需要將大量檔案Excel和Word移動到指定檔案夾中,Excel和Word的名稱和檔案夾的名稱有相同的,比方說20160102.docx移動到20160102_李明檔案中,請問可以實作嗎?
uj5u.com熱心網友回復:
可以的。寫個vbs腳本就搞定。uj5u.com熱心網友回復:
能幫忙寫一下嗎?謝謝了。
uj5u.com熱心網友回復:
vba也可以試下…………………………uj5u.com熱心網友回復:
Dir 函式示例本示例使用 Dir 函式來檢查某些檔案或目錄是否存在。在 Macintosh 計算機上,默認驅動器名稱是 “HD” ,并且路徑部分由冒號取代反斜線隔開。而且 Microsoft Windows 的通配符在 Mac 中可以作為有效字符出現在檔案名中。也可以使用 MacID 函式來指定檔案組。
Dim MyFile, MyPath, MyName
' 回傳“WIN.INI” (如果該檔案存在)。
MyFile = Dir("C:\WINDOWS\WIN.ini")
' 回傳帶指定擴展名的檔案名。如果超過一個 *.ini 檔案存在,
' 函式將回傳按條件第一個找到的檔案名。
MyFile = Dir("C:\WINDOWS\*.ini")
' 若第二次呼叫 Dir 函式,但不帶任何引數,則函式將回傳同一目錄下的下一個 *.ini 檔案。
MyFile = Dir
' 回傳找到的第一個隱式 *.TXT 檔案。
MyFile = Dir("*.TXT", vbHidden)
' 顯示 C:\ 目錄下的名稱。
MyPath = "c:\" ' 指定路徑。
MyName = Dir(MyPath, vbDirectory) ' 找尋第一項。
Do While MyName <> "" ' 開始回圈。
' 跳過當前的目錄及上層目錄。
If MyName <> "." And MyName <> ".." Then
' 使用位比較來確定 MyName 代表一目錄。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 如果它是一個目錄,將其名稱顯示出來。
End If
End If
MyName = Dir ' 查找下一個目錄。
Loop
FileCopy 陳述句示例
本示例使用 FileCopy 陳述句來復制檔案。示例中假設 SRCFILE 為含有資料的檔案。
Dim SourceFile, DestinationFile
SourceFile = "SRCFILE" ' 指定源檔案名。
DestinationFile = "DESTFILE" ' 指定目的檔案名。
FileCopy SourceFile, DestinationFile ' 將源檔案的內容復制到目的檔案中。
uj5u.com熱心網友回復:
是不是就看簽名8個字符相同的移到和它一樣的前面8個字母相同的檔案夾里?uj5u.com熱心網友回復:
如果是的話用下面代碼,默認只處理當前目錄下的檔案夾和檔案:Dim fso,objFolders,objFolder,rsshell
set fso = CreateObject("Scripting.FileSystemObject")
set rsshell=createobject("wscript.shell")
Set objFolders = fso.GetFolder(".")
For Each objFolder In objFolders.SubFolders
rsshell.run "cmd /c move " & left(objFolder.name,8) & ".* " & objFolder.name,0
Next
處理前

處理后
uj5u.com熱心網友回復:
直接bat腳本:@echo off
setlocal EnableDelayedExpansion
for /d %%i in (2016*) do (
:: echo %%~ni
set p=%%~ni
set m=!p:~0,8!
echo !m!
for %%a in ( !m!.docx ) do ( echo %%a
move %%a %%i
)
for %%b in ( !m!.xls ) do ( echo %%b
move %%b %%i
)
)
pause


轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46845.html
標籤:VBA
