我正在尝试编写一个程序来更改字符串中的字母,但我一直遇到一个明显的问题,即如果它更改了值,例如将 A 更改为 M,当它更改为 M 时,它会将 M 更改为其他值,因此,当我运行代码将其全部更改回来时,它会将其转换为好像该字母最初是 M 而不是 A。
有什么想法如何使代码不改变已经改变的字母吗?
至于代码,我刚刚得到了大约 40 行(我确信有一种更干净的方法可以做到这一点,但我对 VBA 很陌生,当我尝试选择大小写时,它只会更改一个字母,而不会遍历所有字母)
Text1.value = Replace(Text1.value, "M", "E")
尝试这个:
Dim strToChange As String
strToChange = "This is my string that will be changed"
Dim arrReplacements As Variant
arrReplacements = Array(Array("a", "m"), _
Array("m", "z"), _
Array("s", "r"), _
Array("r", "q"), _
Array("t", "a"))
Dim strOutput As String
strOutput = ""
Dim i As Integer
Dim strCurrentLetter As String
For i = 1 To Len(strToChange)
strCurrentLetter = Mid(strToChange, i, 1)
Dim arrReplacement As Variant
For Each arrReplacement In arrReplacements
If (strCurrentLetter = arrReplacement(0)) Then
strCurrentLetter = Replace(strCurrentLetter, arrReplacement(0), arrReplacement(1))
Exit For
End If
Next
strOutput = strOutput & strCurrentLetter
Next
这是输出:
Thir ir zy raqing ahma will be chmnged
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)