Кто-нибудь может объяснить, как вставить смайлики в VBA Excel?

#vba #unicode #emoji

#vba #unicode #эмодзи

Вопрос:

В VBA Excel для печати " amp; Chr(34) amp; " используется определение " . Я поискал, и там было указано, что 34-й символ — это " , согласно этому веб-сайту.

Таким же образом для знака 👍 большими пальцами вверх код

 amp;#128077; amp;#x1f44d;
  

Я пытался:

 " amp; Chr(#128077) amp; "  
" amp; Chr(128077) amp; "  
" amp; Chr(#x1f44d) amp; "
" amp; Chr(x1f44d) amp; "
  

Но в нем указано error как синтаксическая ошибка или ожидаемый) или недопустимый аргумент

Кто-нибудь может предложить мне решение

Ответ №1:

В Excel символы хранятся с использованием Unicode UTF-16 . «Thumbs up» соответствует символу Юникода U 1F44D , закодированному следующим образом:

в UTF-16 (hex): 0xD83D 0xDC4D (d83ddc4d)

в UTF-16 (десятичный): 55357, 56397

Все те символы, которые не являются классическими латинскими символами (ASCII), должны обрабатываться с помощью chrW и ascW .

Итак, в вашем случае

 ChrW(55357) amp; ChrW(56397)
or
ChrW(amp;HD83D) amp; ChrW(amp;HDC4D)
  

это вызвало бы одобрение. Также обратите внимание, что вы не получите этого в среде разработки VBA. Вам нужно будет поместить их на рабочий лист, чтобы увидеть.

Разъяснение

 ' Puts a thumbs up symbol in A1
ActiveSheet.Range("A1").Value = ChrW(55357) amp; ChrW(56397)

' Will not produce a thumbs up symbol, since VBA can't handle it
Debug.Print ChrW(55357) amp; ChrW(56397)

' Will not produce a thumbs up symbol, since VBA can't handle it
MsgBox ChrW(55357) amp; ChrW(56397)
  

HTML
Если вы хотите, чтобы большие пальцы были в HTML, тогда сделайте вот так:

 HtmlString = "<p>something something amp;#128077;</p>"
Print #1, HtmlString ' <-- replace with your output method
  

( amp;#128077; или amp;#x1f44d; )

Комментарии:

1. Я пробовал с » amp; ChrW (56397) amp; » он выдает как prnt.sc/myprap

2. Мне нужно использовать в редакторе Vba для Excel., я в замешательстве /

3. @DineshS — Я добавил некоторые пояснения выше

4. You must use decimal numbers — почему? 128077 есть amp;h1f44damp; .

5. Нет, я беру свои слова обратно. Но вы должны использовать правильный синтаксис. Для чисел я рекомендую fileformat.info/info/unicode/char/1f44d/index.htm . 128077 — это номер объекта html, который здесь нельзя использовать.