Wps表格一键插入图片,调整大小,居中对齐位置
WPS做报价表格,经常要用到产品图片,手动插入很费力,且看我优化过的一键插图。
操作方法
- 01
打开WPS表格,找到开发工具,打开VBA编辑器,任意新建一个模块
- 02
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
- 03
在WPS表格窗口运行宏,名称为“优化过的插入图片”