2017-07-10 178 views
3

是否有將運行時圖像從工作表複製到用戶表單圖像控件的方法?
我在包含圖像的工作表上獲得了一個形狀。當我選擇 - >複製(CTRL + C)這個形狀,去UserForm1設計 - >image1屬性我可以做ctrl + v在圖片屬性image1和圖像從剪貼板粘貼到image1控制。
如何在運行時使用VBA實現此目的?
我試圖UserForm1.Image1.Picture = ActiveSheet.Shapes("Picture 1").Picture 而他們的許多類似的搜索引擎無工作
我通常會得到「對象不支持此屬性或方法」或「類型不匹配」VBA將工作表中的圖像複製到用戶表單

+0

如果您使用工作表上的ActiveX圖像控制,您可以直接將其圖片分配給表單上的圖片。對於其他圖片,請搜索Stephen Bullen的PastePicture代碼。 – Rory

回答

1

前一段時間我一直在尋找的解決方案一樣的問題。沒有找到解決方案,但我找到了一個很好的解決方法:

  1. 用大量圖片製作一個單獨的窗體。將其命名爲user_form_pics

  2. 然後打電話給你的形式在以下方面:

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 
+0

謝謝你們,但我忘了提及。從ActiveX控件或從其他圖像控件複製到用戶窗體,我沒有任何問題。 問題是我想複製的圖片是一個形狀。它是通過複製Chart並將其粘貼到工作表而創建的。我得到了形狀名稱和其他一切。我可以選擇這個形狀等等。我只是不能複製圖片並將其粘貼到'UserForm.Image.Picture'屬性 – Sphinx

+0

@Sphinx - 在這種情況下,您應該將圖表的圖片作爲bmp保存在與Excel應用程序相同的文件夾中。然後用它的Path和它的名字來引用它。或者至少這是我曾經做過的事... – Vityata

+0

@Sphinx - 請參閱已編輯的答案以瞭解我的意思:) – Vityata

相關問題