作者terry1983 (HungTse)
看板Office
標題[算表] 大量檔案自動改檔名
時間Wed Jul 3 15:16:33 2019
軟體:excel
版本:2016
請問如果有一百筆excel的檔案
想要讓程式自動把檔案名稱改成檔案內某一格的文字再.xls
要怎麼做到呢?
ex:
檔案 1.xls a1= 小明 → 小明.xls
檔案 2.xls a1= 小華 → 小華.xls
......
檔案 99.xls a1= 發大財 → 發大財.xls
檔案100.xls a1= 芒果乾 → 芒果乾.xls
如果其中有a1相同的,檔名能自動加(1)(2)…之類的,有什麼辦法能做到嗎
ex 小明(1).xls
小明(2).xls
先感謝各位先進幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.17.33 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1562138195.A.62F.html
推 sleepwu: 試試totalcommander這工具 可以批次改檔名 07/03 15:26
→ soyoso: 先問檔案內要取儲存格a1的工作表名都一樣嗎 07/03 15:26
→ sleepwu: 檔名可用文檔導入 07/03 15:26
推 ljuber: 我做過類似的 用="rename "&a1&" "&b1串 貼到bat檔 07/03 15:27
→ ljuber: 不過有重複的可能要先挑出來 07/03 15:28
→ soyoso: 都一樣的話,命令提示字元cmd先到該子目錄內 07/03 15:28
→ soyoso: dir /b *.xls >list.txt 07/03 15:28
→ soyoso: 文字檔案內取出檔名,="'路徑["&檔名儲存格&"]工作表名稱' 07/03 15:31
→ soyoso: !a1" 07/03 15:31
→ soyoso: 複製,選擇性貼上值,尋找及取代,尋找目標和取代成都打上 07/03 15:32
→ soyoso: =,這樣可取得更名要對應的檔名 07/03 15:33
→ soyoso: 接著以l大所提的以批次檔來更名 ="ren "&a1&" "&b1&判斷是 07/03 15:34
→ soyoso: 否重覆,用函數countif 07/03 15:34
→ soyoso: 沒重覆"",有重覆"("&countif(...)&")";前面判斷是否重覆 07/03 15:36
→ soyoso: 函數countif的range上是整欄,後面括號內的計數則不是,是 07/03 15:37
→ soyoso: 以絕對參照$固定範圍開始的列號,結束列號以相對參照 07/03 15:38
→ soyoso: 巨集的話,迴圈dir取檔案,檔案內工作表裡某一儲存格 1. 07/03 15:43
→ soyoso: workbook.open,worksheet.range取得 07/03 15:43
→ soyoso: 2.以="'路徑["&變數(完整檔名)&"]工作表名稱'!a1"方式 07/03 15:44
→ soyoso: 更名 name....as 07/03 15:45