【问题标题】:How can I mass rename files containing Tilde (~) in VBA如何在 VBA 中批量重命名包含波浪号 (~) 的文件
【发布时间】:2021-01-27 21:50:25
【问题描述】:

我正在使用以下代码在 VBA 中重命名文件

Sub Dateien_umbenennen()

Dim xDir As String
Dim xFile As String
Dim xRow As Long
Dim oFSO As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

xDir = oFSO.GetFolder(ThisWorkbook.Sheets("Sheet1").Range("F4").Value)
xFile = Dir(xDir & "\" & "*")

Do Until xFile = ""
xRow = 0

On Error Resume Next
xRow = Application.Match(xFile, Range("A:A"), 0)

If xRow > 0 Then
Name xDir & Application.PathSeparator & xFile As _
xDir & Application.PathSeparator & Cells(xRow, "B").Value
End If

xFile = Dir

Loop

End Sub

A 列中的旧名称,B 列中的新名称,由单元格 F4 中的值指定的文件夹。 A 列中的某些文件包含 ~ 特殊字符。这些文件没有被重命名,而没有该字符的文件则被重命名。如何重命名包含 ~ 的文件?

【问题讨论】:

  • 它们是包含文件名字符串中的字符,还是作为第一个字符?
  • 这些文件的名称中是否真的有波浪号 (~),或者它们是长文件名的短版本?我指的是这个:en.wikipedia.org/wiki/8.3_filename
  • 它们在文件名字符串中
  • 文件名示例:ZBPD_1121630.4-04_WGR_(B~~76)_c_Z_0562_1v1。也许我应该说新名称看起来像这样 ZBPD_1121630.4-04_WGR_(B##76)_c_Z_0562_1v1 (也有特殊字符)
  • 有一个插件可以批量重命名文件,它叫做 AuthorTec File Doctor,做一个网络搜索以获取更多信息。我是作者,免费试用 30 天。

标签: vba


【解决方案1】:

我认为 xRow = Application.Match(xFile, Range("A:A"), 0) 中的问题。例如,如果您找到具有 name~1.txt 的行,则需要下一个语法:xRow = Application.Match("name~~1.txt", Range("A:A"),例如 double ~。试试此代码:xRow = Application.Match(Replace(xFile,"~","~~"), Range("A:A"),0)

【讨论】:

  • 谢谢!现在正在重命名文件
猜你喜欢
  • 2018-12-20
  • 1970-01-01
  • 2012-03-08
  • 2016-11-04
  • 2013-10-30
  • 2010-10-17
  • 1970-01-01
相关资源
最近更新 更多