[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 用 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无法直接操作Excel,可以考虑用VBS。

TOP

  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. For Each File in FSO.GetFolder(".").Files
  3.    If Lcase(Right(File.Name,4)) = ".xls" Then
  4.       ReDim Preserve ar(i)
  5.       ar(i) = File.Path :i = i + 1
  6.    End if
  7. Next
  8. For i = 0 to UBound(ar) :RenMyFile ar(i) :Next
  9. MsgBox "OK"
  10. Sub RenMyFile(fPath)
  11.    Set oExcel = CreateObject("Excel.Application")
  12.    oExcel.Visible = False
  13.    oExcel.WorkBooks.Open(fPath)
  14.    oExcel.WorkSheets(1).Activate
  15.    Str = Mid(oExcel.Cells(9,1).Value,2,5) & " " & _
  16.    oExcel.Cells(19,1).Value & " " & _
  17.    Mid(oExcel.Cells(1,4).Value,10)
  18.    oExcel.Quit
  19.    Set oExcel = Nothing
  20.    NewFileName = Replace(Str,"/","") & ".xls"
  21.    If Not FSO.FileExists(NewFileName) Then
  22.       FSO.GetFile(fPath).Name = NewFileName
  23.    End If
  24. End Sub
复制代码
保存为test.vbs 试试

TOP

返回列表