找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23174|回复: 2

[文本处理] 用 excel 文件本身的內容更改文件名

[复制链接]
发表于 2013-1-15 13:04:18 | 显示全部楼层 |阅读模式
各位大俠好
請問批處理能做到用 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 是合併的

如各位認為不能做到, 亦煩請告之, 謝!
发表于 2013-1-15 13:48:26 | 显示全部楼层
BAT无法直接操作Excel,可以考虑用VBS。
发表于 2013-1-16 14:33:08 | 显示全部楼层
  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 试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:19 , Processed in 0.020630 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表