在每个符号后插入零宽度空格

时间:2019-02-14 17:45:46

标签: excel vba zero-width-space

我需要在MS Excel文档的文本中的每个字符之后放置一个零宽度的空格。
两个重要条件:

  • 目标文本为日语和中文。
  • 带有拉丁字符和数字的文本不应受到影响。即在混合的亚洲\拉丁语单元格中,仅亚洲字符必须由这些空格分隔。

文本数量巨大,因此手动输入文本很痛苦。

我试图找到合适的VBA模块,但没有成功。

也许可以在另一个应用程序中执行此操作,然后将文本导入回Excel?那解决方案也是可以接受的。

谢谢。

P.S。例外情况(拉丁字符):

  

65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122

1 个答案:

答案 0 :(得分:0)

假设:

U + 200B

这个小宏:

Sub dural()
    Dim zws As String, A1 As String, L As Long, i As Long
    Dim temp As String

    zws = ChrW(8203)
    A1 = Range("A1").Text

    L = Len(A1)
    For i = 1 To L
        temp = temp & Mid(A1, i, 1) & zws
    Next i

    temp = Mid(temp, 1, Len(temp) - 1)
    MsgBox A1 & vbCrLf & temp

    Range("A2").Value = temp
End Sub

将产生:

enter image description here

注意:

字符可能为零宽度,但不能为零长度!