Sub PasteImage() '定义变量 Dim objData As DataObject Dim filePath As String

'获取剪贴板中的数据
Set objData = New DataObject
objData.GetFromClipboard

'如果剪贴板中存在图片,则保存为文件
If objData.GetFormat(vbCFBitmap) Then
    filePath = ThisWorkbook.Path & "\temp.bmp"
    objData.SaveToFile filePath
ElseIf objData.GetFormat(vbCFDIB) Then
    filePath = ThisWorkbook.Path & "\temp.dib"
    objData.SaveToFile filePath
ElseIf objData.GetFormat(vbCFMetafile) Then
    filePath = ThisWorkbook.Path & "\temp.emf"
    objData.SaveToFile filePath
ElseIf objData.GetFormat(vbCFEnhMetafile) Then
    filePath = ThisWorkbook.Path & "\temp.emf"
    objData.SaveToFile filePath
Else
    MsgBox "剪贴板中不存在图片"
    Exit Sub
End If

'插入图片
ActiveSheet.Pictures.Insert(filePath).Select

'删除临时文件
Kill filePath

End Su

vba模拟右键粘贴时选择为图片

原文地址: https://www.cveoy.top/t/topic/dS25 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录