自定义字符串反转顺序 - 配对2位数

aka*_*aco 1 excel reverse vba excel-vba

我有Excel数据文件.在单元格中,我有这样的数据

480000074B26E42D
Run Code Online (Sandbox Code Playgroud)

我怎样才能在其他单元格中得到结果

2DE4264B07000048
Run Code Online (Sandbox Code Playgroud)

所以,我想把最后两位数字放在前面.然后是接下来的2位数字,2D然后把它放在2D(前面的那个)之后

在此输入图像描述

我尝试使用此代码,但我得到错误的结果

=RIGHT(B2,LEN(B2) -2)
Run Code Online (Sandbox Code Playgroud)

小智 7

我相信其他贡献者误解了您的要求,只是提供建议来扭转所提供的价值.

有了输入480000074B26E42D,我认为你所要求的结果是不正确的:2DE4264B07000084.最后两个字符已被转置,实际输出将为:
2DE4264B07000048.

如果这是正确的,您可以使用此Visual Basic for Applications功能(存储在公共代码模块中)


Public Function strReverse_Character_Pairs(ByVal strValue As String) As String

  Dim lngLoop                                           As Long
  Dim strReturn                                         As String

  strReturn = ""

  For lngLoop = Len(strValue) - 1& To 1& Step -2&
      strReturn = strReturn & Mid$(strValue, lngLoop, 2)
  Next lngLoop

  strReverse_Character_Pairs = strReturn  
End Function
Run Code Online (Sandbox Code Playgroud)

基于单元格中原始文本的用法A1如下(将此公式放在除单元格以外的任何单元格中A1):

=strReverse_Character_Pairs(A1)

还可以增强该功能,通过在任一端添加"虚拟"字符来检查该值是否具有偶数个字符,以便反转对符合预期.