Excel vba:仅从剪贴板粘贴图像+;允许以后重复使用
我想允许用户在excel中执行以下操作。这可能是使用宏实现的Excel vba:仅从剪贴板粘贴图像+;允许以后重复使用,excel,vba,Excel,Vba,我想允许用户在excel中执行以下操作。这可能是使用宏实现的 用户使用截图工具拍摄屏幕截图 代码检查剪贴板是否包含图像(仅当剪贴板包含图像时才运行的代码) 然后,代码会将剪贴板中的图像粘贴到指定区域(例如单元格J55) 同时,我想给这个粘贴的图像一个ID(比如,imgSource1),这样用户以后可以在另一张纸上重复使用这个图像(比如,在第2张纸上,调用imgSource1并粘贴到那里) 到目前为止,我已经学会了如何在上述位置将某些内容粘贴到excel中。我还没有找到一个工作代码来检查剪贴板上是
Sub btn_addImg1()
If (Clipboard.GetImage() != null)
Sheet1.Paste Destination:=Range("J55"), Link:=False
Else
'do nothing
End If
“If(Clipboard.GetImage()”
行是红色的,它告诉我它需要一个“)”位于“!=
”
请注意,对于我的情况,在本地驱动器上保存映像不是一个可行的解决方案。它必须从剪贴板粘贴
谢谢大家! 我找到了一些解决办法,但需要测试 顺便说一句,您需要转到工具->参考->Microsoft Forms 2.0项目库才能使
MSForms
正常工作
Sub btn_addImg1()
Dim DataObj As New MSForms.DataObject
DataObj.GetFromClipboard
On Error GoTo Img
GetClipboardText = DataObj.GetText
On Error GoTo 0
Img:
If Err = -2147221404 Then
Err = 0
Sheet1.Paste Destination:=Sheet1.Range("J55"), Link:=False
Else
'do nothing
End If
End Sub
谢谢我会试着报告一下情况。为了确保我理解代码:我们正在使用
MSForms
检查错误。它首先从剪贴板中获取数据,然后将其发送到msform,然后检查错误。如果检测到错误,则转到Img
。这就是我有点迷茫的地方:GetText
做什么?另外,为什么error=-2157221404?
使用GetText
从包含剪贴板镜像的DataObj
中获取字符串。当剪贴板包含图像而不是字符串时,GetText
函数返回错误。此错误号为-2147221404。当剪贴板为空或包含其他类型的对象时,必须检查是否会弹出相同的错误。这就是为什么我说这是一个解决办法,但它需要测试。期待您的反馈,祝您新年快乐