时间:2020-02-10  来源:百度经验  作者:南霸天mxw  阅读:3

在采集员工信息或者学生信息的时候,常常需要添加上照片,如果信息量比较大,我们通过插入图片的方式来完成就比较困难,这里我们尝试用宏来解决这个问题。

首先我们需要把照片放到文件夹里面,命名为111,然后把工作表和文件夹111放在同一目录=C:\Documents and Settings\Administrator\桌面\111,工作表的建立形式如图所示。

打开工作表,点击开发工具——宏,打开宏编辑窗口,在宏名称中输入“AutoAddPic”,单击“创建”按钮,打开宏编辑器。

在  Sub AutoAddPic()       End Sub   中间输入以下代码,保存后,关闭。 For Each Shp In ActiveSheet.Shapes    If Shp.Type = msoPicture Then Shp.Delete    Next    Dim MyPcName As String    For i = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count    If (ActiveSheet.Cells(i, 1).Value = "姓名") Then         MyPcName = ActiveSheet.Cells(i, 2).Value & ".jpg"        ActiveSheet.Cells(i + 1, 2).Select    Dim MyFile As Object    Set MyFile = CreateObject("Scripting.FileSystemObject")    If MyFile.FileExists(ThisWorkbook.Path & "\" & "111" & "\" & MyPcName) = False Then    MsgBox ThisWorkbook.Path & "\" & "111" & "\" & MyPcName & "暂无图片"    Else    ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & "111" & "\" & MyPcName).Select    End If    End If    Next i

打开工作表,点击开发工具——宏,打开宏编辑窗口,选择AutoAddPic,单击执行,这时候,工作表中就插入了照片。

代码介绍

If (ActiveSheet.Cells(i, 1).Value = "姓名") Then         MyPcName = ActiveSheet.Cells(i, 2).Value & ".jpg"        ActiveSheet.Cells(i + 1, 2).Select    Dim MyFile As Object    Set MyFile = CreateObject("Scripting.FileSystemObject")意思是在(i, 1)中如果单元格内容是“姓名”,在它右边

If (ActiveSheet.Cells(i, 1).Value = "姓名") Then         MyPcName = ActiveSheet.Cells(i, 2).Value & ".jpg"        ActiveSheet.Cells(i + 1, 2).Select    Dim MyFile As Object    Set MyFile = CreateObject("Scripting.FileSystemObject")意思是在(i, 1)中如果单元格内容是“姓名”,在它右边相邻单元格内容是“XXX”,那么在下面的单元格中有以下情况。

相邻单元格内容是“XXX”,那么在下面的单元格中有以下情况。

ThisWorkbook.Path & "\" & "111" & "\" & MyPcName,其中ThisWorkbook.Path是指该工作表的路径,111是文件夹的名称,

ThisWorkbook.Path & "\" & "111" & "\" & MyPcName,其中ThisWorkbook.Path是指该工作表的路径,111是文件夹的名称,

Top