Доброго времени суток! Уважаемые форумчане, второй день бьюсь над проблемой и никак не могу ее решить. Есть простой код работы с буфером обмена:
Код
Sub SetClipboardText() 'Запись в буфер обмена
Dim MyData As DataObject, txt As String
txt = "Проверка данных"
Set MyData = New DataObject
MyData.SetText txt 'Запись в буфер обмена
MyData.PutInClipboard
MyData.GetFromClipboard
txt = MyData.GetText(1)
Debug.Print txt
End Sub
Работает он определенно странно(( Если макрос работает без остановки, результат в окне Immediate:
Код
Проверка данных
Но как только приостановить макрос (F9) на строке
Код
txt = MyData.GetText(1)
Дальнейшее продолжение работы макроса в ручном режиме (F8) выдает следующий результат Immediate (два вопросительных знака):
Код
??
Умом понимаю, что проблема не в Excel вроде. Решения по поиску не найдено, пробовал отключать антивирус, Skype, PuntoSwitcher и тд. Не помогло.
Может кто-то уже сталкивался с такой проблемой и знает решение? Или есть иные способы сохранения информации помимо использования библиотеки Microsoft Forms 2.0 Object Library.
Или есть иные способы сохранения информации помимо использования библиотеки Microsoft
есть: обьявить переменную соответсвующего типа, записать в нее значение, извлекать значение столько раз сколько потребуется (до полного удовлетворения) дополнительно можете почитать о цикле жизни переменных, чтобы обьявить ее в правильном месте и правильным способом
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Именно она и устраивала эти проблемы, причем основательно.
не угадали у меня в одной из программ тоже используется буфер обмена - там такая же ерунда (2 квадратика в буфере обмена) причем, проявляется не на всех компах (примерно на половине компов. проверено на сотнях компов) пару часов потратил на поиск проблемы - не нашел (думал, какая-то программа перехватывает буфер обмена, - но нет, иногда на чистой винде та же проблема)
я в своём макросе в цикле (до 10 раз, чтобы не зациклилось) записывал одно и то же значение в буфер обмена, каждый раз проверяя содержимое буфера обмена - совпадает ли с записываемым значением И проблема стала проявляться реже, - только в 5-10% случаев (иногда с первого раза в буфер обмена попадает то, что надо, а иногда с 3-7 раза)