将图片从用户窗体复制到电子表格

问题描述:

我有一张图片加载到用户窗体中包含的图像控件中。我想复制userform图片控件中的图片并将其粘贴到电子表格中。我已经找到了在电子表格中创建OLEObject的方法,并以这种方式移动图像here,但是我创建了多个电子表格,并且我不想要所有额外的对象。将图片从用户窗体复制到电子表格

如果我进入VBA编辑器,进入用户窗体,进入图像控件,并使用我的鼠标,选择图片属性中的(位图)并复制它,我可以将图片粘贴到电子表格中。

如果我使用宏记录器来做同样的事情,代码自然只包含选择和粘贴方法。如果我在代码中引用相同的图片属性,我所能找到的就是句柄。

我已经搜索了很多,我相信,我无法找到任何通过编程方式获取句柄并在VBA中粘贴图片的方法。我对VBA相当陌生,API层面的工作远远超出了我目前的能力。

+0

如何图片进入摆在首位的图像控制? –

+0

你是否有示例代码,你可以分享它不工作?有人在用户窗体中显示图像控件名称,目标工作表单元格? – dbmitch

+0

@ Tim Williams,图片被手动加载到用户表单中。图片可以根据需要更改,因此表单是本地资源,而不是写入存储在网络上的图像的路径。 – pondersome

你可以从那里到一个临时文件和负载输出:

Private Sub UserForm_Activate() 

    TransferToSheet Me.Image1, Sheet1 

End Sub 

Private Sub TransferToSheet(picControl, sht As Worksheet) 
    Const TemporaryFolder = 2 
    Dim fso, p 
    Set fso = CreateObject("scripting.filesystemobject") 
    p = fso.GetSpecialFolder(TemporaryFolder).Path & "\" & fso.gettempname 
    SavePicture picControl.Picture, p 
    sht.Pictures.Insert p 
    fso.deletefile p 
End Sub 
+0

令人惊叹!非常感谢。这完美的作品! – pondersome