查找并替换文件夹中文件名列表中的特定单词

时间:2013-11-13 00:31:37

标签: vba

我写了一个宏来查找单词“active”而不是“activ”,但我文件夹中的某些文件名可能包含单词“activ”。我想编写一个宏来搜索这些并将它们重命名为“active”,以便我的其余部分工作。我知道点点滴滴,但似乎无法把一个体面的代码放在一起。

If FileName = "*activ*" then 

'also the file name is not just "activ" it maybe "activcn". 
'am i doing this right by putting the **?

FileName = replace(FileName, "activ", "active")

Else 

End if

我需要设置一个循环,以便它遍历文件列表并搜索所有文件名。

实际上我找到了一个解决方案:

Dim strFile As String
Dim newPath As String

newPath = "S:\test\"

strFile = Dir(newPath & "*.*")

If strFile = "*activ*" Then

  Do While Len(strFile) > 0
    If InStr(strFile, "activ") > 0 Then
      Name strFolder & strFile As strFolder & replace(strFile, "activ", "active")
    End If
    strFile = Dir()
  Loop
Else

End If

需要帮助:

If strFile = "*activ*" Then

正如我之前所说,文件名包含的不只是“激活”,例如“activcn”。

1 个答案:

答案 0 :(得分:0)

在我看来,你的例子中的逻辑和变量名称有点混乱......这就是我认为你的意思:

Dim strFile As String
Dim strFolder As String

strFolder = "S:\test\"

strFile = Dir(newPath & "*activ*.*") ' no need to look at all files using *.*
Do While Len(strFile) > 0
    If Not strFile Like "*active*" Then 'else "active" gets replaced by "activee"
        Name strFolder & strFile _
            As strFolder & Replace(strFile, "activ", "active")
    End If
    strFile = Dir()
Loop