【问题标题】:How to split string in pairs如何成对拆分字符串
【发布时间】:2019-02-12 19:27:29
【问题描述】:

我想成对拆分以下字符串。使用当前代码,我只能将字符串拆分为单个字符。

Sub SplitinPair()
Dim str

    str = "5C61AA79"
    str = StrConv(str, vbUnicode)
    str = Left(str, Len(str) - 1)

    Debug.Print str
End Sub

当前输出为

5 C 6 1 A A 7 9

我正在寻找的期望输出是这样的:

5C 61 AA 79

如何做到这一点?

【问题讨论】:

  • 嗨,按你说的做是行不通的。我删除一个字符以删除不需要的尾随字符。

标签: excel vba string split


【解决方案1】:

一个选项是一个简单的循环:

Private Sub SplitinPair()
   Dim str As String
   Dim str2 As String
   Dim i As Integer

   str = "5C61AA79"

   For i = 1 To Len(str) Step 2
      str2 = str2 & Mid(str, i, 2) & " "
   Next

   Debug.Print str2
End Sub

【讨论】:

  • 它工作得很好。 Step 2 在这种情况下似乎很有帮助。非常感谢
【解决方案2】:

此方法假定字符数为偶数,十六进制对就是这种情况。如果有可能遇到奇数字符集,请添加一些错误控制。

Option Explicit

Sub SplitinPair()
    Dim str, tmp As Variant, i As Long

    str = "5C61AA79"
    str = StrConv(str, vbUnicode)

    tmp = Split(Left(str, Len(str) - 1), Chr(0))
    str = vbNullString

    For i = LBound(tmp) To UBound(tmp) Step 2
        str = str & tmp(i) & tmp(i + 1) & Space(1)
    Next i

    str = Trim(str)

    Debug.Print str
End Sub

【讨论】:

  • 感谢您分享另一个解决方案。就像你说的偶数个字符时它工作得很好。
猜你喜欢
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2011-06-18
  • 2017-09-22
相关资源
最近更新 更多