Isa*_*vaa 4 string excel vba replace excel-vba
我有这样的字符串
"C://Documents/TestUser/WWW/Help/Files/Move_Help.txt"
而不得不更换Move_Help.txt同Move_Job.txt
我在VBA EXCEL中使用以下代码
str = "C://Documents/TestUser/WWW/Help/Files/Move_Help.txt"
rlpStr = Replace(str, 'Help', 'Job')
Run Code Online (Sandbox Code Playgroud)
我正进入(状态
"C://Documents/TestUser/WWW/Job/Files/Move_Job.txt"
Run Code Online (Sandbox Code Playgroud)
预期
"C://Documents/TestUser/WWW/Help/Files/Move_Job.txt"
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?
仅供参考:我无法将Move_Help与Move_Job匹配(Move_不是常量.它可以是任何字符串)
Eng*_*ast 16
这是一个单行解决方案:
rlpStr = StrReverse(Replace(StrReverse(str), StrReverse("Help"), StrReverse("Job"), , 1))
Run Code Online (Sandbox Code Playgroud)
从技术上讲,它的效率略低于组合InStr,Replace但如果需要,它可以在另一个表达式中使用.此外,我喜欢单线解决方案,只要它们不是不可理解的.
下面的代码中的技术是否符合您的要求?
Str的初始值是:
C://Documents/TestUser/WWW/Help/Files/Move_Help.txt
Run Code Online (Sandbox Code Playgroud)
最终价值是:
C://Documents/TestUser/WWW/Help/Files/Move_Job.txt
Run Code Online (Sandbox Code Playgroud)
该代码用于InStrRev定位最后一次出现ValueCrnt,如果ValueCrnt存在,如果存在,它将替换最后一次出现ValueNew.
Option Explicit
Sub Demo()
Dim Pos As Long
Dim Str As String
Dim ValueCrnt As String
Dim ValueNew As String
Str = "C://Documents/TestUser/WWW/Help/Files/Move_Help.txt"
ValueCrnt = "Help"
ValueNew = "Job"
Pos = InStrRev(Str, ValueCrnt)
If Pos > 0 Then
Str = Mid(Str, 1, Pos - 1) & Replace(Str, ValueCrnt, ValueNew, Pos)
End If
Debug.Print Str
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9447 次 |
| 最近记录: |