在每个符号后插入零宽度 space
Inserting zero-width space after each symbol
我需要在 MS Excel 文档的文本中的每个字符后放置一个零宽度 space。
两个重要条件:
- 目标文本是日文和中文。
- 带有拉丁字符和数字的文本应该不会受到影响。 IE。在混合 Asian\Latin 单元格中,只有亚洲字符必须由 space 分隔。
文本量很大,手动输入很麻烦。
我试图找到任何合适的 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
假设:
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
将产生:
注意:
字符可以是零宽度,但不是零长度!
我需要在 MS Excel 文档的文本中的每个字符后放置一个零宽度 space。
两个重要条件:
- 目标文本是日文和中文。
- 带有拉丁字符和数字的文本应该不会受到影响。 IE。在混合 Asian\Latin 单元格中,只有亚洲字符必须由 space 分隔。
文本量很大,手动输入很麻烦。
我试图找到任何合适的 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
假设:
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
将产生:
注意:
字符可以是零宽度,但不是零长度!