|
谢谢你的耐心解答和回复,一直理解不了代码的意思,查阅了不少资料,终于弄明白了文件途径和文件名称的相互关系,现在把二种方法(一种是原工作簿名和修改后的工作簿名带后缀,一种不带后缀)的代码发上来供大家交流;
Sub 批量修改工作簿名带后缀名()
Dim arr, p$, f$, i%, x%
x = Range("a65536").End(3).Row
arr = Range("a2:b" & x)
p = ThisWorkbook.Path & "\拆分结果\"
f = Dir(p & "*.xlsx")
Do While f <> ""
If f <> ThisWorkbook.Name Then
For i = 1 To UBound(arr)
If f = arr(i, 1) Then
Name p & f As p & arr(i, 2)
End If
Next
End If
f = Dir
Loop
MsgBox "ok"
End Sub
Sub 批量修改工作簿名不带后缀名()
Dim arr, p$, f$, r, i%, x%
x = Range("e65536").End(3).Row
arr = Range("e2:f" & x)
p = ThisWorkbook.Path & "\拆分结果\" '文件途径
f = Dir(p & "*.xlsx") '工作簿文件名称
Do While f <> "" '遍历逐个工作簿循环
If f <> ThisWorkbook.Name Then '如果循环的工作簿不是当前活动工作簿
r = Split(f, ".") '用Split函数把工作簿名f以后缀的“.”为界分成前后二个值的一维数组r
For i = 1 To UBound(arr) '需修改前后的工作簿名称循环
If r(0) = arr(i, 1) Then '如果f工作簿名(去后缀)=arr第1列中(工作表的E列)循环中的工作簿名
Name p & f As p & arr(i, 2) & ".xlsx" '把原工作簿名称修改为arr对应的第2列(即工作表F列)的工作簿名称
End If
Next
End If
f = Dir
Loop
MsgBox "ok"
End Sub |
评分
-
1
查看全部评分
-
|