ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 终极工具 Kutools 和 Office Tab 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cyfchuang

[求助] 資料夾內的檔案名稱修改

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-6-11 14:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cyfchuang 发表于 2025-6-11 13:48
謝謝回復與指導
換卡在這裡,應該怎麼修正

arr是二维数组,应该arr(k , 1)

TA的精华主题

TA的得分主题

发表于 2025-6-11 14:50 | 显示全部楼层
cyfchuang 发表于 2025-6-11 13:44
謝謝回復與指導
換卡在這裡,應該怎麼修改

f = Dir(ph & "*.pdf")
这只读到一个文件,f 要跟arr(k)对应,如果不熟悉应用,表格里最好是原文件名一列,新文件名一列。

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-6-11 14:53 | 显示全部楼层
lss001 发表于 2025-6-11 14:03
Worksheets("HUZ").Select
x = Cells(Row.Count, "C").End(xlUp).Row
arr = Range("C2:C" & x)

謝謝回復與指導
第一個檔名修改完成,更改第二個檔名卡住,應該怎麼做修正
20250611_6.PNG

TA的精华主题

TA的得分主题

发表于 2025-6-11 15:04 来自手机 | 显示全部楼层
Worksheets("HUZ").Select
x = Cells(Row.Count, "C").End(xlUp).Row
arr = Range("C2:C" & x)
k = 1
Do Until f = ""
    Name ph & f As ph & arr(k, 1) & ".pdf"
    k  = k + 1
    f = dir '此处递增文件
Loop

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-6-11 15:17 | 显示全部楼层
温馨云 发表于 2025-6-11 14:50
f = Dir(ph & "*.pdf")
这只读到一个文件,f 要跟arr(k)对应,如果不熟悉应用,表格里最好是原文件名一 ...

不懂
這樣應該要怎麼修改,才可以運行做出想要的結果

TA的精华主题

TA的得分主题

发表于 2025-6-11 15:45 | 显示全部楼层
cyfchuang 发表于 2025-6-11 15:17
不懂
這樣應該要怎麼修改,才可以運行做出想要的結果

要先获取文件名,才能针对改名。
比如:


  1. Sub 获取文件名()
  2.     mypath = "D:\测试 (5)"
  3.     Dim StrFile As String
  4.     StrFile = Dir(mypath)
  5.     Do While Len(StrFile) > 0
  6.         MsgBox StrFile
  7.         StrFile = Dir
  8.     Loop
  9. End Sub
复制代码
前面老师说过要附件的,不然全都得靠猜。至少也要截图一两张,再附上说明。你C列的是重新命名的文件名?

TA的精华主题

TA的得分主题

发表于 2025-6-11 16:07 | 显示全部楼层
获取文件名→放到A列,然后B列是新的文件名

先运行(获取文件名),然后重命名。
你参考着修改。
  1. Sub 重命名()
  2.     On Error Resume Next
  3.     ph = "D:\测试 (5)"
  4.     r1 = Cells(Rows.Count, "A").End(xlUp).Row
  5.     For i = 2 To r1
  6.         filePath = ph & Cells(i, 1)
  7.         newFilePath = ph & Cells(i, 2)
  8.         Name filePath As newFilePath
  9.         If Err.Number <> 0 Then
  10.             MsgBox Prompt:="不能重命名文件", _
  11.                 Buttons:=vbOKOnly, _
  12.                 Title:="重命名文件错误"
  13.         End If
  14.     Next
  15.     On Error GoTo 0
  16. End Sub

  17. Sub 获取文件名()
  18.     ph = "D:\测试 (5)"
  19.     Dim StrFile As String
  20.     StrFile = Dir(ph)
  21.     n = 1
  22.     Do While Len(StrFile) > 0
  23.         n = n + 1
  24.         Cells(n, 1) = StrFile
  25.         StrFile = Dir
  26.     Loop
  27. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2025-6-11 16:11 | 显示全部楼层
抱歉,附上檔案
需要 VBA 協助將檔案夾內的 PDF,依序將檔名改為 Excel C2 以下的名稱
20250611_8.PNG
20250611_7.PNG

HUZ PDF.zip

85.07 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2025-6-11 16:30 | 显示全部楼层
cyfchuang 发表于 2025-6-11 14:53
謝謝回復與指導
第一個檔名修改完成,更改第二個檔名卡住,應該怎麼做修正

   k=k + 1
   f=dir   '继续查找文件
loop
你这个是随机重命名,不需要对应吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-6-11 16:40 | 显示全部楼层
半百 发表于 2025-6-11 16:30
k=k + 1
   f=dir   '继续查找文件
loop

可以運作了,感謝幫忙
目前只是 VBA 新手,會簡單的錄製與在網路上尋找資料做修改
太深奧的還無法理解,會努力學習的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-7-17 05:07 , Processed in 0.033358 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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