在单元格A1处,我有一个字符串“ 01000000 01xx0000 000000x1 000xx000”,其中x可以是0或1(请注意,它每8位有一个空格)
在单元格A2处,我有一个字符串0101(或1111)
在单元格A3中,我需要将A1字符串中的每个“ x”替换为A2字符串的相应数字。
因此,A3包含公式:= Substitute_pair(A1,“ x”,A2)
这意味着:
-第一个出现的“ x”将替换为“ 0”
-第二个出现的“ x”将替换为“ 1”
-第三个出现的“ x”将替换为“ 0”
-出现的第四个“ x”将替换为“ 1”
The original string is "01000000 01xx0000 000000x1 000xx000"
The output/expected string is: "01000000 010x0000 00000011 00001000"
下面的VBA脚本可在“ VBA调试”窗口中使用,但对于Excel应用程序,单元格A3始终返回0。
Public Function Substitute_pair(str As String, old_str As String, new_str As String) As Byte
Dim str_origin As String
For i = 1 To Len(new_str)
tmp = Application.WorksheetFunction.Substitute(str, old_str, Mid(new_str, i, 1), 1)
Debug.Print "Replacing " & i & " occurence " & old_str & " with value " & Mid(new_str, i, 1)
str = tmp
Next i
End Function
Sub test()
Dim tmp As String
tmp = Substitute_pair("01000000 01xx0000 000000x1 000xx000", "x", "11111")
End Sub