我正在创建一个报告,并已自动执行了抓取图像并将其放进去的过程。它正在工作,但是比需要的时间更长。我希望有人可以通过实现循环来简化代码。
我尝试了几种方法,但是当涉及到放置图像的区域时,它似乎总是默认为我设置的初始变量。
Sub AutoFillInImages()
'DS#=图像文件名
'DS#_1 = F:\ Merchandising \ Style的编号\ DS#\ DS#PIC \
下的文件夹名称
'DS#_2 = DS#.2下的子文件夹或官方DS#文件夹
将Pic视作对象
形状变暗
调光范围
设置rng = Range(“ A14”)
DS1 =朗格和“ A.jpg”
DS1_1 =左(DS1,6)&“ 00-”&中(DS1,4,3)&“ 99”
DS1_2 =左(DS1,8)
出现错误时转到DS2
设置shp = ActiveSheet.Shapes.AddPicture(Filename:=“ F:\ Merchandising \ Style's Numbers \ DS#\ DS#PIC \” _
&DS1_1&“ \”&DS1_2&“ \” _
&DS1,LinkToFile:= msoFalse,_
SaveWithDocument:= msoCTrue,左:= 340,上:= 46,宽度:=-1,高度:=-1)
有shp
.Top = rng.Offset(-9,0).Top
.Left = rng.Offset(-2,0).Left
.LockAspectRatio = msoTrue
高度= 190
.IncrementTop 5
.IncrementLeft 40
结尾为
DS2:
设置rng = Range(“ A27”)
DS1 =朗格和“ A.jpg”
DS1_1 =左(DS1,6)&“ 00-”&中(DS1,4,3)&“ 99”
DS1_2 =左(DS1,8)
出现错误时转到DS3
设置shp = ActiveSheet.Shapes.AddPicture(Filename:=“ F:\ Merchandising \ Style's Numbers \ DS#\ DS#PIC \” _
&DS1_1&“ \”&DS1_2&“ \” _
&DS1,LinkToFile:= msoFalse,_
SaveWithDocument:= msoCTrue,左:= 340,上:= 46,宽度:=-1,高度:=-1)
有shp
.Top = rng.Offset(-9,0).Top
.Left = rng.Offset(-2,0).Left
.LockAspectRatio = msoTrue
高度= 190
.IncrementTop 5
.IncrementLeft 40
结尾为
DS3:
设置rng = Range(“ A40”)
DS1 =朗格和“ A.jpg”
DS1_1 =左(DS1,6)&“ 00-”&中(DS1,4,3)&“ 99”
DS1_2 =左(DS1,8)
Set shp = ActiveSheet.Shapes.AddPicture(Filename:=“ F:\ Merchandising \ Style's Numbers \ DS#\ DS#PIC \” _
&DS1_1&“ \”&DS1_2&“ \” _
&DS1,LinkToFile:= msoFalse,_
SaveWithDocument:= msoCTrue,左:= 340,上:= 46,宽度:=-1,高度:=-1)
有shp
.Top = rng.Offset(-9,0).Top
.Left = rng.Offset(-2,0).Left
.LockAspectRatio = msoTrue
高度= 190
.IncrementTop 5
.IncrementLeft 40
结尾为
结束子
上面的代码有效,它比我所需要的更长。感谢您抽出宝贵的时间查看此内容!
答案 0 :(得分:0)
创建一个可以使用其他参数(Rng)重复调用的子或函数。避免使用GoTo。使用 On Error Resume Next 代替,然后使用 If Err.Number = 0 Then 创建一个括号,用于代码的下一部分,以避免在出错时运行它。请注意,更新的错误恢复下一个会重置 Err 对象。