Cap*_*ABC 4 excel vba excel-vba
我期待在用户窗体上的Image控件中查看工作表中的图像.
此图像将根据组合框上的值更改.我已将(使用:插入 - >图片)一些图像插入到我的工作簿的"Sheet1"中,并将其命名为"Picture1"和"Picture2".
我创建了以下UserForm:
表格http://im56.gulfup.com/msKyqi.png
这是我尝试使用的代码,以便从工作表加载图像,但不幸的是,目前这不起作用.
Private Sub ComboBox1_Change()
UserForm1.Image1.Picture = LoadPicture(Worksheets("Sheet1").Shapes(ComboBox1.Value))
End Sub
Private Sub UserForm_Initialize()
UserForm1.ComboBox1.Clear
UserForm1.ComboBox1.AddItem "Picture1"
UserForm1.ComboBox1.AddItem "Picture2"
UserForm1.ComboBox1.Value = "Picture1"
UserForm1.Image1.Picture = LoadPicture(Worksheets("Sheet1").Shapes(ComboBox1.Value))
End Sub
Run Code Online (Sandbox Code Playgroud)
每次运行此代码时,我都会收到以下错误:
错误http://im43.gulfup.com/YoWvTp.png
请指教.
我想到了!
当我使用UserForm时,有一个问题的解决方法.
而不是让工作表中的图像然后尝试加载它们在我尝试在UserForm中首先使用它们的形式,这是如何.
在您的用户表单上创建一个框架: 框架http://im88.gulfup.com/Moy8I6.png
将框架的visible属性设置为" False ": 可见http://im88.gulfup.com/sAIQqh.png
通过添加图片控件插入图像并加载图像,您可以根据需要添加任意数量的图像: 图像http://im88.gulfup.com/oas0EQ.png
命名图像: 名称http://im88.gulfup.com/cIO317.png
将所有图像一个接一个地拖到框架中(然后您可以将框架移动到一个角落,这样就不会打扰您:
拖动http://im88.gulfup.com/1fOSut.png Move Away http://im88.gulfup.com/Q1fzKd.png
接下来创建一个图片控件,这是您将根据选择显示图片的方法:
表格视图http://im88.gulfup.com/X1UVRB.png
在这个例子中,我将使用组合框进行选择.现在将以下代码插入到非常简单的表单中:
Private Sub ComboBox1_Change()
' Image1 is the name of the created picture control
UserForm3.Controls.Item("Image1").Picture = UserForm3.Controls.Item(UserForm3.ComboBox1.Value).Picture
End Sub
Private Sub UserForm_Initialize()
UserForm3.ComboBox1.AddItem "Argentina"
UserForm3.ComboBox1.AddItem "Brazil"
UserForm3.ComboBox1.AddItem "Chile"
End Sub
Run Code Online (Sandbox Code Playgroud)
正如您将看到的,带有图片的框架是隐藏的,图像控件内的图像会根据选择进行更改:
结果http://im88.gulfup.com/MSqyHF.png
我认为这是更好的方法,而不是将图像从工作表导出到Temp文件夹,然后将它们加载回图片控件.
| 归档时间: |
|
| 查看次数: |
19183 次 |
| 最近记录: |