如何在EXCEL中vba实现图片的录入与查看
本期作品分享在EXCEL中用vba录入图片信息,并且根据查询信息显示录入的图片。本期讲解以下期将要发布的作品《品质管理系统2.0》为例进行讲解。
用户窗体的插入
1.1 依次点击开发工具—Visual Basic(或使用快捷键Alt+F11)。
1.2 鼠标右键点击空白处依次选择插入—用户窗体
1.3 将鼠标光标放在刚刚插入的窗体右下角,拖动窗体大小到合适尺寸为止。
1.4 选中窗体后点击属性(如下图所示),打开窗体的属性窗口。
1.5 打开属性窗口后按下图方式依次点击“按分类序”、选择“Caption”,将我们新建的窗体命名为“信息录入界面”。如下图所示。
插入窗体控件
2.1选择窗体后点击如下图所示的工具箱图表,打开窗体控件工具箱。
2.2 根据下图所示拖入对应的标签和文字框,这里和上一期分享的登录界面制作类似,不在详细说明。
2.3 插入图像控件:如下图所示,在需要插入图片的位置放入图像控件。
2.4 设置图像控件的属性,将“picturesizemode”设置为“1”。
输入代码
3.1 双击“插入图片”按钮。输入下列代码(红色字体为代码注释):
Private Sub CommandButton4_Click()
Sheet2.Range("a1") = ""
Image1.Picture = LoadPicture()
(清空A1单元格和图片控件加载的图片)
Dim filenames As String
filenames = Application.GetOpenFilename("(*.jpg),*.jpg")
(将选择的图片路径赋值给 filenames)
If filenames <> "" Then
Sheet2.Range("a1") = filenames
(将图片路径录入到A1单元格)
End If
If filenames = "False" Then
Exit Sub
End If
Image1.Picture = LoadPicture(filenames)
(图片控件根据加载的图片路径加载图片)
End Sub
3.2 在双击录入按钮,输入代码。将Sheet2.Range("a1")单元格的图片路径保存到数据库对应位置。
图片的查看
4.1 在index工作表插入图片控件。如下图所示
4.2 双击查询界面的listbox1控件,并输入一下代码,当双击查询框的内容后,对应的信息将自动显示在index工作表对应的位置。
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Sheet1.Range("f7:f11") = ""
Sheet1.Range("d12:d14") = ""
Sheet1.Range("i8") = ""
Sheet1.Range("i10") = ""
Sheet1.Range("i12") = ""
Sheet1.Range("i14") = ""
Sheet2.Range("m1") = ""
Sheet1.Image1.Picture = LoadPicture()
a = ListBox1.ListIndex
If a > 0 Then
Sheet1.Cells(7, 6) = ListBox1.Text
Sheet1.Cells(8, 6) = ListBox1.List(a, 1)
Sheet1.Cells(9, 6) = ListBox1.List(a, 2)
Sheet1.Cells(10, 6) = ListBox1.List(a, 3)
Sheet1.Cells(12, 4) = ListBox1.List(a, 4)
Sheet1.Cells(13, 4) = ListBox1.List(a, 5)
Sheet1.Cells(14, 4) = ListBox1.List(a, 6)
Sheet1.Cells(8, 9) = ListBox1.List(a, 7)
Sheet1.Cells(10, 9) = ListBox1.List(a, 8)
Sheet2.Range("m1") = ListBox1.Text & ListBox1.List(a, 1) & ListBox1.List(a, 2)
Sheet1.Cells(11, 6) = Sheet1.Cells(9, 6) / Sheet1.Cells(10, 6)
b = Sheet2.Range("k1")
Sheet1.Cells(12, 9) = Sheet2.Cells(b, 14)
Sheet1.Cells(14, 9) = Sheet2.Cells(b, 15)
lj = Sheet2.Cells(b, 10)
Sheet1.Image1.Picture = LoadPicture(lj)
End If
End Sub
结语:本期作品就分享到这里,由于时间关系有些地方未能细讲还请谅解。如制作过程中存在疑问可在评论区留言或私信小编。