Страницы: 1 2 След.
RSS
Проблемы с копированием в буфер обмена
 
Добрый день, Ув. Форумчане!

В одном из файлов значения из UserForm копирую в буфер обмена.
Для этого использую два макроса:
Код
Sub SetClipboardText(ByVal txt$) 
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText txt$
        .PutInClipboard
    End With
End Sub
        или
Код
Sub SetClipboardText2(sStr As String)
    Dim objClpb As New DataObject
    objClpb.SetText ""
    objClpb.SetText sStr
    objClpb.PutInClipboard
End Sub

После очередных обновлений любимой Windows, в буфер обмена вместо нужных данных попадает набор символов "??"
Пробовал копировать латиницу, кириллицу, числа - на выходе "??".
Если кто-то сталкивался с подобной проблемой - прошу помочь!
 
С латинскими буквами (и цифрами) - необычная ситуация. Попробуйте создать файл-пример и описать конфигурацию и последовательность действий.
Владимир
 
Во вложении фрагмент файла. Буду благодарен за помощь или совет.
 
Спасибо за пример.
Я сделал следующее: вызвал форму и нажал в форме кнопку "Скопировать описание в буфер обмена". Результат:

Станция затаривания СЗ-500-Л2-VB/AP-Л-А-C-Нерж (шкаф управления - СЗ-500-Л-П--А-C)

Конфигурация: Win10, Excel 2016.

Опишите свою последовательность действий, приводящую к неправильному результату и свою конфигурацию. В какую программу Вы вставляете данные из буфера обмена?
Владимир
 
Добрый день!

Последовательность та же, но на выходе на двух рабочих местах из пяти - появляются символы "??".
На одном W7, Office 2010, на втором - W10, Office 2016.

Предполагаю, что есть другие способы вставлять информацию в буфер обмена, т.к. прилагаемые два макроса работают не на всех машинах.
Если знаете другие способы - прошу помочь.
 
Данные пробовал вставлять в Word, Excel, Skype - результат один и тот же   -  символы "??"
 
Вставьте, пожалуйста, на проблемном компьютере содержимое буфера обмена в ответном сообщении.
Владимир
 
Alexey0185, если у вас такая ситуация, используйте темп файл txt или реестр виндовс.
Или гора к вам, или вы к ней
 
Цитата
sokol92 написал:
Вставьте, пожалуйста, на проблемном компьютере содержимое буфера обмена
Вот символы, которые появляются - ￿￿
Самое интересное, что до 11-00 программа работала нормально, после - снова сбой.
Перезагрузка ноута - не помогает.
Цитата
ivanok_v2 написал:
если у вас такая ситуация, используйте темп файл txt или реестр виндовс
Спасибо. Об этом честно не подумал, но если с буфером ничего не выйдет - буду использовать этот вариант.
 
Alexey0185, то что Вы показываете, противоречит предыдущим сообщениям (вопросительные знаки). Необходимо полное содержание буфера обмена. Лучше всего, вставьте  (Shift+Ins)  содержание буфера  в новую книгу Excel и приложите этот файл.
Владимир
 
Так и сделал. Содержание буфера вставил в ячейку листа, а затем из ячейки скопировал на форум.
Ниже скрин, как выглядят символы в Outlok:
 
Это не вопросительные знаки, а символы юникода  U+FFFF (Not a Character).
Запустите второй макрос из #1 с параметром "Z123" и вставьте в сообщение буфер обмена (с новой строки)
Владимир
 
Вы имеете ввиду вставить Z123 вместо sStr ?
 
Вызвать макрос (можно переместить его в стандартный модуль):
Код
Sub SetClipboardText2(sStr As String)
    Dim objClpb As New DataObject
    objClpb.SetText ""
    objClpb.SetText sStr
    objClpb.PutInClipboard
End Sub

Sub test()
  SetClipboardText2 "Z123"
End Sub
 
Владимир
 
На выходе то же - ￿￿
 
Ладно, сделаем еще попытку:
  • перезагрузите компьютер
  • откройте Excel. Нажмите Alt+F11 и убедитесь, что нет никаких проектов. Вернитесь в Excel (Alt+F11)
  • откройте прилагаемую книгу и запустите макрос Test
Вопрос тот же: что в буфере обмена?
Владимир
 
10 минут ...
 
Итак:
1. При запуске макроса из Вашего файла, в буфер попадает - "Z123". Здесь все ok.
2. После Вашего файла запустил свой, скопировал макросом инфу в буфер.
На лист вставляются, как и раньше, символы "??".

НО!
В буфере находится нужное (правильное) значение - посмотрел с помощью сторонней программы.
 
Макрос один и тот же (в двух файлах). А если после того, как второй запуск портит буфер, вновь запустить первый макрос (из ClipBoard)?
Владимир
 
Макрос один и тот же.
После запуска, который "портит" буфер, макрос из ClipBoard по-прежнему работает нормально:
 
Понятно. А буфер обмена портится непоcредственно примером из #3 или "боевым" файлом? Проведите серию экспериментов, запуская в промежутке макрос из Clipboard.xlsm и проверяя буфер.
Владимир
 
Хорошо. Поэкспериментирую, возможно появится какая-то закономерность.
 
Мысли в слух. Если один и тот же макрос по разному работает в разных файлах, то, возможно, стоит пересоздать заново рабочий файл? (макросы пропустить через блокнот - вкл. рус. раскл. клавиатуры и в экселе и в блокноте, скопировали содержимое модуля старого файла, вставили в блокнот, скопировали из блокнота, вставили в новый модуль нового файла)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Буду пробовать.
Изменено: Alexey0185 - 11.10.2018 16:14:02
 
В #3 макросы нормальные. Моя текущая версия - "битый" боевой файл, но пока мало фактов.
Владимир
 
"Мысли в слух" и "пальцем в небо":
у меня есть предположение, что причина в сбоях кроется не в Windows или Excel, а в подключенном оборудовании.

Оба ноутбука, на которых появляются сбои, подключены к спецпринтеру для печати шильдов на металлических заготовках.
Остальные рабочие места к нему не подключены.
 
Очень правдоподобно. Можно попробовать отключить (временно) принтер...
Владимир
 
Добрый день, коллеги!

У меня такая же проблема.
Прочитал внимательно. Проделал эксперименты с тестовым макросом (который тоже работает корректно).
К моему ноуту ничего не подключено (сетевой принтер разве что).
Отключил от ноута все, включая внешний монитор, USB наушники, сетевой кабель и WiFi
Эффект нулевой. Из буфера копируются все те же вопросительные знаки.

Есть решение вопроса?
 
Попробуйте выставить раскладку клавиатуры везде РУС(блокнот и Excel) и запустите код.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Allleksey написал:
К моему ноуту ничего не подключено (сетевой принтер разве что).
Так принтер (точнее, его драйвер), похоже, и был виноват в первой проблемной ситуации (см. #26) ...
Тестовый макрос - это тот же макрос, который Вы вставили в свой файл. Попробуйте в проблемном файле набрать в ячейке Z123 и кнопкой перенести в буфер обмена. Если получается, то попробуйте "=Z123".
Изменено: sokol92 - 30.10.2018 19:00:40
Владимир
Страницы: 1 2 След.
Наверх