我正在尝试完成的任务如下: 每个字母代表个人收到的特定培训。问题是我们有一些符号,在你实现多个符号后,成为另一个符号。所以我需要做的是分解单元格中的符号,并让它们返回到它们的完整值。
示例:
D2: {@DWRZ}
R= B+X
Result after code: {@DWBXZ}
我不确定如何在VBA中执行此操作,我假设类似于字符串搜索,如果找到R,则将没有R的当前内容写入新单元格并添加BX。想法?
答案 0 :(得分:0)
如果不确切知道数据的结构,那么编写一个功能齐全的解决方案有点困难。例如,知道在表中相对于“{@DWRZ}”定义“R = B + X”的位置会很有帮助。话虽这么说,这是一个我觉得可能适合你的一般解决方案。
Function ReplaceValues(OldString As String)
n = 3 ' <----------------Adjust the number of replacements as needed.
ReDim arr(1 To n, 1 To 2) ' ^
arr(1, 1) = "R": arr(1, 2) = "BX" ' |
arr(2, 1) = "--": arr(2, 2) = "--" ' |
arr(3, 1) = "--": arr(3, 2) = "--" ' |
' <------------Add more definitions as needed... ---------- +
For x = 1 To n
If InStr(1, OldString, arr(x, 1)) Then 'If the leter "R" is found in "@DWRZ"
NewString = Replace(OldString, arr(x, 1), arr(x, 2)) 'Replace it with "BX"
End If
Next
ReplaceValues = NewString
End Function
如果将此功能放在项目中,那么您将能够以与Excel中内置的任何功能相同的方式调用它。例如=ReplaceValues(A1)
,其中单元格A1包含您的字符串,“{@ DWRZ}”希望这对您有用。