VBA将图像从工作表复制到Userform

时间:2017-07-10 14:36:40

标签: excel vba excel-vba

有没有办法将工作表中的图像运行时复制到userform图像控件?
我在包含图像的工作表上得到了一个形状。当我选择 - >复制(ctrl + C)这个形状,转到UserForm1设计 - > image1属性我可以在image1的图片属性中执行ctrl + v,并将图像从剪贴板粘贴到image1控件。
如何在运行时使用VBA实现此目的?
我试过UserForm1.Image1.Picture = ActiveSheet.Shapes("Picture 1").Picture 许多类似的机器人都没有工作 我通常得到"对象不支持这个属性或方法"或"类型不匹配"

1 个答案:

答案 0 :(得分:1)

前段时间我一直在寻找同样问题的解决方案。没有找到解决方案,但我找到了一个很好的解决方法:

  1. 制作一张单独的表格,里面有很多照片。将其命名为user_form_pics

  2. 然后在表单上调用以下内容:

  3. Me.Image1.Picture = user_form_pics.img_name11.Picture

    这是在构造函数中使用它的方法:

    Private Sub UserForm_Initialize()
        Me.Image1.Picture = user_form_pics.img_name11.Picture
    End Sub
    

    有效!现在,您的表单中包含user_form_pics.img_name11

    的图片

    编辑: 如果您需要将图表保存到图片,则过程如下:

    Option Explicit
    
    Public Sub TestMe()
    
        Dim chtChart    As Chart
        Dim strPath     As String
    
        Set chtChart = ActiveSheet.ChartObjects(1).Chart
        strPath = ThisWorkbook.Path & "\myChart.bmp"
    
        chtChart.Export (strPath)
    
        UserForm1.Show vbModeless
        UserForm1.Image1.Picture = LoadPicture(strPath)
    
    End Sub