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

时间:2013-07-27 02:59:12

标签: excel vba excel-vba reverse

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

480000074B26E42D

我如何在其他单元格中获得结果

2DE4264B07000048

所以,我想把最后两位数字放在前面。然后是2D之前的下两位数字,并将其放在2D之后(前面的那个

enter image description here

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

=RIGHT(B2,LEN(B2) -2)

3 个答案:

答案 0 :(得分: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

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

=strReverse_Character_Pairs(A1)

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

答案 1 :(得分:-1)

我认为有点vba可能就是答案,我刚刚测试了this并且工作正常

答案 2 :(得分:-1)

在VBA中使用以下功能:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cells(3, 1) = StrReverse(Cells(1, 1))    
End Sub

Cell A1包含要翻转的字符串。单元格A3包含结果