Как отключить копирование как изображение в Excel?

405
Superole

В последнее время кажется, что Excel установил стандартное поведение копирования как изображения для горячей клавиши Ctrl+ C(на самом деле форматированный текст, данные ячейки таблицы и изображение для печати отображаются одновременно в буфере обмена).

Это плохо, если у вас есть рабочий процесс, в котором вы копируете данные из Excel и вставляете их в другое приложение MS Office или в веб-форму в Google Chrome, где по умолчанию поведение Ctrl+ Vзаключается в вставке самого богатого содержимого, доступного. Например, в таких продуктах Atlassian, как Jira, вставка вызывает вставку «скриншотов» (вложенных изображений).

Итак, вопрос:

Как я могу сказать Excel не помещать данные изображения в буфер обмена, когда я нажимаю Ctrl+ C?

Я знаю, что в вышеупомянутых приложениях можно принудительно вставить простой текст. Я не спрашиваю, как это сделать. Это громоздко, потому что нет стандартного способа сделать это.

Ctrl+ Shift+ VВ Chrome.

Ctrl+ V, Ctrl, TВ Outlook.

так далее...

1

1 ответ на вопрос

0
Rajesh S

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

Помните, что действие Ctrl + C может быть остановлено только путем его отключения. Поэтому я считаю, что это лучшее из возможных решений.

Обратите внимание, что перед выполнением этого кода VBA в редакторе VB нажмите « Инструмент», затем « Ссылки» и выберите « Библиотеку объектов Microsoft Form 2.0» .

Лучше использовать код с событием Open Workbook.

Private Sub Workbook_open()  Dim BufObj As MSForms.DataObject Set BufObj = New MSForms.DataObject  BufObj.GetFromClipboard  On Error Resume Next ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False  If Err Then MsgBox "Nothing in ClipBoard!": Err.Clear  Else  MsgBox "Picture in ClipBoard": Err.Clear Application.CutCopyMode = False Application.DisplayAlerts = False  End If  End Sub 

NB. Вам также необходимо создать одно событие нажатия кнопки, чтобы активировать режим обрезки . Этот простой код сделает это.

Application.CutCopyMode = True  Application.DisplayAlerts = Ture 

Этот код был проверен мной, прежде чем я разместил его здесь.

Похожие вопросы