多语言展示
当前在线:1886今日阅读:86今日分享:14

Wps表格一键插入图片,调整大小,居中对齐位置

WPS做报价表格,经常要用到产品图片,手动插入很费力,且看我优化过的一键插图。
工具/原料
1

Wps表格

2

vba宏

方法/步骤
1

打开WPS表格,找到开发工具,打开VBA编辑器,任意新建一个模块

2

Sub 优化过的插入图片()Application.ScreenUpdating = False '关闭屏幕刷新Dim rg As Range, k As Range, k1 As Range, picPath$, picTemp As PictureDim 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= SelectionSet 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 = NothingNextk4.Select '返回宏运行之前单元格Application.ScreenUpdating = True '打开刷新End Sub

3

在WPS表格窗口运行宏,名称为“优化过的插入图片”

推荐信息