excel-在字符串中每n个字符后插入一个空格

excel-在字符串中每n个字符后插入一个空格,excel,Excel,使用MS excel-使用长度为34个字符的字符串(如0x80800180808080),需要转换为字符串(如808080801808080),即去掉开头的0x,并在原始字符串中每两个字符之间添加一个空格 第一部分很好-替换(A1,1,2,”)完成 第二部分需要帮助 更新:- @Jeeped的答案与基于UDF的解决方案合用-但需要非UDF解决方案。尝试此用户定义的功能 Option Explicit Function spaceBigHex(str As String, _

使用MS excel-使用长度为34个字符的字符串(如
0x80800180808080
),需要转换为字符串(如
808080801808080
),即去掉开头的
0x
,并在原始字符串中每两个字符之间添加一个空格

第一部分很好-
替换(A1,1,2,”)
完成

第二部分需要帮助

更新:-


@Jeeped的答案与基于UDF的解决方案合用-但需要非UDF解决方案。

尝试此用户定义的功能

Option Explicit

Function spaceBigHex(str As String, _
                     Optional delim As String = " ")
    Dim i As Long, var As Variant

    'strip off the 0×
    str = Mid(str, 3)

    'insert spaces from right to left        
    For i = Len(str) - 2 To 2 Step -2
        str = Left(str, i) & delim & Mid(str, i + 1)
    Next i

    spaceBigHex = str
End Function

如果字符串的长度是静态的,也可以通过一系列本机工作表函数来实现

=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
 REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RIGHT(A3, LEN(A3)-2),
  31, 0, " "), 29, 0, " "), 27, 0, " "), 25, 0, " "), 23, 0, " "),
  21, 0, " "), 19, 0, " "), 17, 0, " "), 15, 0, " "), 13, 0, " "),
  11, 0, " "), 9, 0, " "), 7, 0, " "), 5, 0, " "), 3, 0, " ")
换行符只是为了帮助你理解它。离开或移除它们;一点也不要紧



用户定义函数(也称为UDF)被放入标准模块代码表中。点击Alt+F11,当VBE打开时,立即使用下拉菜单插入► 模块(Alt+I,M)。将功能代码粘贴到名为Book1-Module1(代码)的新模块代码表中。点击Alt+Q返回工作表。

除非长度固定,否则可能需要编写VBA UDF。即使使用固定长度的输入,UDf也会是使用and的更好选择。输入长度是固定的-寻找非UDf解决方案。-此解决方案有效-向上投票。然而,我正在寻找一种非UDF的方法来做到这一点。