Вставка пробела нулевой ширины после каждого символа - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно поместить пробел нулевой ширины после каждого символа в текстах в документе MS Excel.
Два важных условия:

  • Целевой текст на японском и китайском языках.
  • Текст с латинскими символами и цифрами не должен быть затронут.Т.е. в смешанной азиатской \ латинской ячейке эти пробелы должны разделяться только азиатскими символами.

Количество текстов огромно, поэтому вводить их вручную неудобно.

Я пытался найти любой подходящий VBA-модуль, но безуспешно.

Может быть, возможно выполнить такое действие в другом приложении, а затем импортировать тексты обратно в Excel?Это решение также приемлемо.

Заранее спасибо.

PS Исключения (латинские буквы):

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 8283 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 голосов
/ 14 февраля 2019

Предполагая:

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

ПРИМЕЧАНИЕ:

Символ может быть нулевой ширины, но не нулевой длины!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...