如何在 Excel 中禁用复制为图像的功能?

如何在 Excel 中禁用复制为图像的功能?

Ctrl最近,Excel 似乎已将+热键的复制为图像默认行为C(实际上它似乎将格式化的文本、表格单元格数据和打印视图图像同时放在剪贴板上)。

如果您的工作流程是从 Excel 复制数据并粘贴到另一个 MS Office 应用程序或 Google Chrome 中的 Web 表单中,则这种情况很糟糕,因为Ctrl+的默认行为V是粘贴最丰富的内容。例如,在 Atlassian 产品(如 Jira)中,这会导致粘贴触发插入“屏幕截图”(图像附件)。

所以问题是:

Ctrl当我按下+键时,如何告诉 Excel 不要将图像数据放到剪贴板上C

我知道可以在上述应用程序中强制粘贴纯文本。我不是在问如何做到这一点。这很麻烦,因为没有标准的方法来实现这一点。

Ctrl++在ShiftChromeV中。

Ctrl+ VCtrlT在 Outlook 中。

ETC...

答案1

您可以尝试此 VBA 代码来检查剪贴板是否有图像数据,如果有,则此代码将阻止粘贴它。

请记住,只有禁用 Ctrl+C 才能停止其效果。所以我相信这是最好的解决方案。

请注意,在执行此 VBA 代码之前,请在 VB 编辑器中单击工具然后参考并选择Microsoft Form 2.0 对象库

最好使用带有工作簿打开事件的代码。

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

注意:您还需要创建一个命令按钮单击事件激活剪切复制模式。这个简单的代码就可以完成这个任务。

Application.CutCopyMode = True

Application.DisplayAlerts = Ture

在我将此代码发布到这里之前,我已经对其进行了测试。

答案2

确保您复制的内容不包含 Excel 识别为图像的对象,例如宏按钮。

相关内容