Строка из кода VBA, вставленная в буфер обмена, вставляется как 2 знака вопроса - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть генератор строк, который строит случайную строку из кода ASCII.Затем он помещает эту строку в заголовок метки в форме.

For c = 1 To 4

   ' Randomly decide what set of ASCII chars we will use
   iAsc = Int(3 * Rnd + 1)

    'Randomly pick a char from the random set
 Select Case iAsc
 Case 1
   iChr = Int((Asc("Z") - Asc("A") + 1) * Rnd + Asc("A"))
 Case 2
  iChr = Int((Asc("z") - Asc("a") + 1) * Rnd + Asc("a"))
 Case 3
   iChr = Int((Asc("9") - Asc("0") + 1) * Rnd + Asc("0"))
 Case Else
   Err.Raise 20000, , "PasswordGenerator has a problem."
End Select

If c = 1 Then
strResult = strResult & StrConv(Chr(iChr), vbLowerCase)
Else
strResult = strResult & Chr(iChr)
End If

Next c

Существует кнопка, которую пользователь нажимает, чтобы взять текст заголовка и поместить его в буфер обмена, используя следующуюкод:

strPWord = lblPassword.Caption

DataObj.SetText strPWord
DataObj.PutInClipboard

Когда пользователь приходит, затем вставьте этот код в другое место, и все, что он видит, - это два маленьких прямоугольника с вопросительными знаками.Это происходит при использовании Ctrl + V, правого клика Вставить и использовании кнопки Вставить с ленты.

Однако если вы откроете буфер обмена (используя маленькую стрелку в разделе ленты буфера обмена), строка будет там правильно икогда вы щелкаете по нему на панели, он вставляется нормально.

У кого-нибудь была такая проблема, когда при вставке строки из буфера обмена появлялись два маленьких прямоугольника.Кажется, я получаю разные результаты в разных программах при вставке кода.

Outlook 2016 - 2 маленьких коробочки с вопросительными знаками

Word 2016 - 2 маленьких коробочки с вопросительными знаками

Excel 2016 - 2 маленьких коробочки с вопросительными знаками

Блокнот - ничего не появляется

Блокнот ++ - xEFxDFxBFxEFxDFxBF

С уважением

Матовый

...