标题: [文本处理] 用 excel 文件本身的內容更改文件名 [打印本页]
作者: nickl 时间: 2013-1-15 13:04 标题: 用 excel 文件本身的內容更改文件名
各位大俠好
請問批處理能做到用 excel 文件本身的內容, 更改文件名嗎?
每個 excel 只有一張試算表, 試算表名稱不一.
改名方式如下: 取出單元格 A9 :第2至6個字元,空格, A19: 所有字, 空格, D1: 第10 至21 個字元
如附件 a 改為A2345 ABC limited A112233CODE
附件 b 改為B2345 ABC limited A196123MOON
(請先將附件副檔名由 .TXT 改回 .XLS)
多問一句, 合併儲存格會有影響嗎, 如附中 A9與 B9 是合併的, D1 至 G1 是合併的
如各位認為不能做到, 亦煩請告之, 謝!
作者: BAT-VBS 时间: 2013-1-15 13:48
BAT无法直接操作Excel,可以考虑用VBS。
作者: apang 时间: 2013-1-16 14:33
- Set FSO = CreateObject("Scripting.FileSystemObject")
- For Each File in FSO.GetFolder(".").Files
- If Lcase(Right(File.Name,4)) = ".xls" Then
- ReDim Preserve ar(i)
- ar(i) = File.Path :i = i + 1
- End if
- Next
- For i = 0 to UBound(ar) :RenMyFile ar(i) :Next
- MsgBox "OK"
-
- Sub RenMyFile(fPath)
- Set oExcel = CreateObject("Excel.Application")
- oExcel.Visible = False
- oExcel.WorkBooks.Open(fPath)
- oExcel.WorkSheets(1).Activate
- Str = Mid(oExcel.Cells(9,1).Value,2,5) & " " & _
- oExcel.Cells(19,1).Value & " " & _
- Mid(oExcel.Cells(1,4).Value,10)
- oExcel.Quit
- Set oExcel = Nothing
- NewFileName = Replace(Str,"/","") & ".xls"
- If Not FSO.FileExists(NewFileName) Then
- FSO.GetFile(fPath).Name = NewFileName
- End If
- End Sub
复制代码
保存为test.vbs 试试
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |