Excel:利用VBA插入网络图片
1、先把代码要使用得开发工具选显卡勾选出来;
2、先为各位同学奉上代码,大家可以跟着下面得步骤动手操作下:
Sub InsertPic(图片链接 As String, 插入图片表名 As String, 插入图片单元格地址 As String)
On Error Resume Next '容错代码和下面err.number对应代码
Dim rng As Range
Set rng = Sheets(插入图片表名).Range(插入图片单元格地址)
'插入一个矩形框,然后在矩形框上黏贴图片
With Sheets(插入图片表名).Shapes.AddShape(msoShapeRectangle, _
rng.Left + 1.5, rng.Top + 1.5, rng.Width - 3, rng.Height - 3).Select
'为什么用这种方法?因为这样插入的图片会小很多,能节省空间
Selection.ShapeRange.Fill.UserPicture 图片链接
'无边框
Selection.ShapeRange.Line.Visible = msoFalse
'如果因为未知原因造成出错,我们就删除插入的矩形框
If Err.Number <> 0 Then
Selection.Delete
Err.Clear
End If
End With
Set rng = Nothing
End Sub
‘这个是主程序了,它才是执行得主体,调用上面程序
Sub 插入网络图片()
Dim lngRow As Long
Dim i As Long
'找到当前表的数据最后一行的行号
lngRow = Cells(Rows.Count, 1).End(xlUp).Row
'从第3行开始向最后一行循环
For i = 3 To lngRow
'调用上面哪个程序,给它B列地址图片网址,当前工作表名字,C列对应单元格插入图片
Call InsertPic(Cells(i, 2).Value, ActiveSheet.Name, "c" & i)
Next
End Sub
3、代码写入模块
4、插入执行按钮,链接刚刚写得代码
通过按钮,就可以调用我们刚刚写好得VBA程序了
5、解释:
● Sub InsertPic程序,是插入单个网络图片代码,可以把它理解为函数(实际它不是)
它有三个参数:
1, 图片链接:就是图片得网络地址
2, 工作表得名字:就是图片这个
3, 插入图片单元格地址:就是A1,B2这样得文本字符串
6、Sub 插入网络图片 程序
这个主程序
7、lngRow = Cells(Rows.Count, 1).End(xlUp).Row
表示数据最后一行给变量lngRow记录,括号里面得1,表示A列,这个可以根据你实际数据结构,调整成2,表示B列,3,表示C列,以此类推
For i = 3 To lngRow
Call InsertPic(Cells(i, 2).Value, ActiveSheet.Name, "c" & i)
Next
这里是从第三行循环到数据最后一行
8、每行,给InsertPic三个参数,插入到指定工作表里,指定单元格,指定网址网络图片
①,Cells(i, 2) 表示B列 i行得单元格地址,可以根据你自己数据网址列,改,比如C列,这里可以改为CELLS(I,3) 或者 CELLS(I,”c”)都可以
②,ActiveSheet.Name 当前表名字,你可以理解为固定用法,不用改
③,"c" & i 表示C列得第 i 行插入图片,可以根据自己实际情况调整,比如F列插入图,这改为”F” & i
使用WPS得同学,使用VBA代码,需要百度自己安装程序解决
9、个人建议
整体操作流程如下。