帮忙写一个VBS读取Excel的内容,改文件名的批处理

读取A2的内容,修改成B2+C2的文件名
="ren "&A2&".m2p "&B2&"-"&C2&".mpg"
="ren "&A3&".m2p "&B3&"-"&C3&".mpg"
后面的以此类推,循环下去
生成一个BAT文件,运行完成以后删除BAT

网上找了一个VBS读取Excel的
Set oexcel=CreateObject("excel.application")
Set obook=oexcel.Workbooks.Open("C:\批量修改文件名.xls")
Set osheet=obook.Sheets("sheet1")
'显示第一个工作表A1单元格数据

msgbox osheet.cells(1,1)
Set obook=Nothing
Set osheet=Nothing
oexcel.Quit

如下两种方法可供选择:bat批量处理和VBA。
  1、BAT批处理文件
  A. 获取文件名
  选定部分或全选所有文件 > Shift+右键 > 复制为路径 > 粘贴到Excel
  B. 编辑命令符
  l 替换文件名前的路径(全部替换)
  l 生成如下字符(空格不可缺少): REN_原文件名_新文件名
  可以使用EXCEL公式批量处理:
  例如如下公式可将文件名前增加序列号1,2,3等。
  =CONCATENATE("REN","",A1," ",ROW(A1),A1)生成批处理文件
  C. 批处理
  l 文件夹内新建txt文件
  l 复制所有excel中编辑好的字符到txt文件中
  l 文件扩展名更改为bat,运行。

  2、VBA法
  alt+F11,复制如下代码到代码栏,F5运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Sub Rename_()
Dim my_Path, my_Doc As String

With Application.FileDialog(msoFileDialogFolderPicker) '定位文件夹
.Show
.AllowMultiSelect = False
my_Path = .SelectedItems(1)
End With

Dim i As Single
i = 1
my_Doc = Dir(my_Path & "\" & "*") '遍历所有文件
Do While Len(my_Doc) <> 0
Name my_Path & "\" & my_Doc As my_Path & "\" & i & my_Doc '更名:增加序号
i = i + 1
my_Doc = Dir
Loop

my_Doc = Dir(my_Path & "\" & "*")
i = 1
Do While Len(my_Doc) <> 0 '复制到excel
Cells(i, 1) = my_Doc
i = i + 1
my_Doc = Dir
Loop追问

第一个功能是

当前文件夹下有A2栏的.m2p就改成B2栏-C2栏.mpg

(就是如果有“A00200.m2p”,就改成“患难见真情-阿清.mpg”)

A3.m2p改成B3-C3.mpg

A4.m2p改成B4-C4.mpg

做个循环

第二个功能是相反的

当前文件夹下有B2-C2.mpg就改成A2.m2p

(如果有“患难见真情-阿清.mpg”,就改成“A00200.m2p”)

做个循环

温馨提示:答案为网友推荐,仅供参考
相似回答