Здравствуйте.
Столкнулся с такой проблеммой:
Нужно поместить в буфер обмена текстовые данные.
И не могу разобраться, в чем проблема.
Задача - поместить в буфер обмена текстовые данные с возможностью последующей их вставки в другие приложения через Ctrl+V
Вариант 1:
Код |
---|
Dim FnameVed As New DataObject
tempstr = "Необходимое имя файла"
FnameVed.SetText Format(tempstr)
FnameVed.PutInClipboard
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, ActivePrinter:=MainForm.ComboBox1.Value, Copies:=1, Collate:=True, IgnorePrintAreas:=False |
Результат - Если принтер Adobe PDF - открывается дмалоговое окно сохранение файла и в строке имени файла нажимаю Ctrl+V - всталяется "Необходимое имя файла", и в буфере тоже остается "Необходимое имя файла", т.е. значение tempstr
Вариант 1:
Код |
---|
Dim FnameVed As New DataObject
tempstr = "Необходимое имя файла"
FnameVed.SetText Format(tempstr)
FnameVed.PutInClipboard |
Результат - в буфере два "квадратика". И эти же два квадратика остаются в буфере в Варианте 1, если принтер отличен от Adobe PDF
Как писал в теме:
Система - Windows 8, 64 бит
Офис - Excel 2013
В VBA VBAProject Microsoft Forms 2.0 Object Library подключено
Пробовал разобраться с Declare Function SetClipboardData - не получилось...
Заранее спасибо