随着手机里面功能越来越丰富,让我们使用起来越来越方便了,给我们的生活带来了极大的便利。怎样解决使腩柽鬣盛用VBA插入图片出现整体向上偏移情况
工具/原料
手机
方法/步骤
1、首先在开发工具中打开VBA编辑器
2、在单元格区域当中输入一些内容作为例子
3、在VBA编辑器中插入模块
4、在模块当中输入如下代码,然后运行SubShapePic()DimshpPic咯悝滩镞AsShapeDimi,j,kAsLongDimfilpat茑霁酌绡hAsStringDimrngAsRange'DimpicWAsSingle,picHAsSingle'图片的宽和高DimcellWAsSingle,cellHAsSingle'单元格的宽和高DimcellLAsSingle,cellTAsSingle'单元格的左边和上边位置(左上角)'DimrtoWAsSingle,rtoHAsSingle'单元格和图片的宽和高的比例ForEachimInActiveSheet.Shapesim.DeleteNextFori=0To5Forj=2To7Step5Fork=0To1'ForEachrngInRange("B"&(6+i*8)&":G"&(7+i*8))'ForEachrngInRange(B6)ForEachrngInCells(6+i*8+k,j)Ifrng.MergeCellsThen'判断所选单元格是否是合并单元格cellW=rng.MergeArea.Width'是的话,cellW和cellH分别等于合并单元格的宽和高cellH=rng.MergeArea.HeightElsecellW=rng.Width'不是的话,cellW和cellH分别等于单元格的宽和高cellH=rng.HeightEndIfcellL=rng.LeftcellT=rng.Topfilpath="E:\02"&"\"&ActiveSheet.Cells(6+i*8+k,j).Text&".jpg"IfNotIsEmpty(rng)ThenIfDir(filpath)<>""Then'SetshpPic=ActiveSheet.Shapes.AddPicture(filpath,msoFalse,msoTrue,cellL+10,cellT+10,cellW-20,cellH-20)SetshpPic=ActiveSheet.Shapes.AddPicture(filpath,msoFalse,msoTrue,cellL+10,cellT+10,cellW-20,cellH-20)'picW=shpPic.Width'picH=shpPic.Height'rtoW=cellW/picW*0.9'设置单元格和图片的比例。并设置最终比例为原始比例的98%;'rtoH=cellH/picH*0.9'这样的目的在于不要让图片充满整个单元格,以便可以让人看到单元格的边线。shpPic.LockAspectRatio=msoFalse'IfrtoW<rtoHThen'shpPic.ScaleHeightrtoW,msoTrue,msoScaleFromTopLeft''shpPic.ScaleWidthrtoW,msoTrue,msoScaleFromTopLeft'Else'shpPic.ScaleHeightrtoH,msoTrue,msoScaleFromTopLeft''shpPic.ScaleWidthrtoH,msoTrue,msoScaleFromTopLeft'EndIfEndIfEndIfNextNextNextNextActiveSheet.Cells(1,2).Select'picW=shpPic.Width'根据上面确认的比例,为图片的宽和高重新赋值'picH=shpPic.Height'shpPic
5、最后我们就可以看到成功的在表格当中插入了图片,
6、通过这样的方式插入的图片会出现两种情况,第1种情况就是如果在WPSoffice当中插入图片的话,前面的图片的格式问题不大,
7、但是越往后面就可以看到插入的图片,整体会往上面偏移,甚至都超出了我们所设置的单元格的范围,
8、要解决这一个问题,我们最好是用Microsoftoffice当中的表格,而且它的VBa编辑器都是免费的,
9、使用同样的代码插入了图片之后,我们可以看到,无论是第1行或者是最后一行图片的格式,都是我们所设置擢爻充种的格式,而没有出现偏移的状况,