vba - 将 +2 添加到任何数字 (VBA)
问题描述
我正在编写一个 VBA 代码来将 +2 添加到放在函数中的任何数字字符串中。
它工作正常,直到它达到 6 和 7,然后它会中断。我真的不知道为什么会这样。
如果您想知道我为什么要这样做,这是加密算法的一部分,它专门用于加密字符串中的数字。
我的代码是:
Sub AddNumbers()
Dim Nos As String
Dim AddNo As String
Dim Found As Boolean
Dim Split()
Nos = "0-1-2-3-4-5-6-7-8-9-10"
Sheets("Sheet1").Range("U2").Value = Nos
Length = Len(Nos)
ReDim Split(Length)
For i = 1 To Length
Found = False
Split(i) = Mid(Nos, i, 1)
For O = 48 To 55
If Split(i) = Chr(O) Then
Split(i) = Chr(O + 2)
Found = True
Exit For
End If
Next O
If Split(i) = Chr(56) Then
Split(i) = Chr(48)
ElseIf Split(i) = Chr(57) Then
Split(i) = Chr(49)
End If
Next i
AddNo = Join(Split, "")
Sheets("Sheet1").Range("U3").Value = AddNo
End Sub
我真的很感激能了解它为什么在 6 点和 7 点中断。
解决方案
稍等一下,但你是加倍的。
看看你的循环。当您遇到 6 ( Char(54)
) 时,您添加 2 并得到 8 ( Char(56)
)。
但是,在您的循环之后,您将再次测试相同的Split(i)
. 6 和 7 的字符现在相应地是 56 和 57 - 所以你再添加 2 到它们。
If Split(i) = Chr(56) And Found = False Then
Split(i) = Chr(48)
ElseIf Split(i) = Chr(57) And Found = False Then
Split(i) = Chr(49)
End If