Wps表格一键插入图片,调整大小,居中对齐位置
1、打开WPS表格,找到开发工具,打开VBA编辑器,任意新建一个模块




2、Sub 优化过的插入图片()
Application.ScreenUpdating = False '关闭屏幕刷新
Dim rg As Range, k As Range, k1 As Range, picPath$, picTemp As Picture
Dim picwd As Integer, picht As Integer, k2 As Range, k3 As Range,k4 as Range
'取得有图片名称的单无格区域
'Set k2 = ThisWorkbook.ActiveSheet.Range("a1:c80").Find(what:="内容")
'Set k3 = ThisWorkbook.ActiveSheet.Range("a1:c80").Find(what:="小计")
'Set rg = Range("b" & (k2.Row + 1), "b" & (k3.Row - 1))
'或者手动选择有图片名称的单元格区域
Set k4= Selection
Set rg = Application.InputBox("选择图片显示区域:", "选择区域", Type:=8)
For Each k In rg
On Error Resume Next '容错处理
'选中图片名称的单无格右侧的单元格做为插入图片的地方
Set k1 = k.Offset(0, 1)
k1.Select
ActiveSheet.Pictures(k & k.Row).Delete '删除老图片
picPath = "E:\弋赢\报价图\" & Trim(k) & ".png" '选择插入图片
Set picTemp = ActiveSheet.Pictures.Insert(picPath) '插入图片
塑伐 picTemp.Name = k & k.Row
picTemp.Placement = xlMoveAndSize '图片随单元格大小变化
picwd = picTemp.Width ' 取得图片本身长度
picht = picTemp.Height ' 取得图片本身宽度
'如果图片长和宽都小于单元格就拉伸图片
If picwd < k1.Width - 5 And picht < k1.Height - 5 Then
picTemp.Width = k1.Width - 5
End If
'如果图片长度大于单元格的长度则缩小
If picwd > k1.Width Then
picTemp.Width = k1.Width - 5
If picTemp.Height * n < k1.Height - 5 Then
picTemp.Height = k1.Height - 5
End If
膨此 End If
'如果图片长离没联度大于单元格的高度则缩小
If picTemp.Height > k1.Height Then
picTemp.Height = k1.Height - 5
End If
'给图片在单元格中居中
picTemp.Left = k1.Left + k1.Width / 2 - picTemp.Width / 2
picTemp.Top = k1.Top + (k1.Height - picTemp.Height) / 2
Set picTemp = Nothing
Next
k4.Select '返回宏运行之前单元格
Application.ScreenUpdating = True '打开刷新
End Sub
3、在WPS表格窗口运行宏,名称为“优化过的插入图片”
