问:我原先在工作表中放置了一个图片,现在我想使用新的图片来替换该图片,但是要保持图片的位置和大小不变,如何使用VBA代码实现?
答:在VBE中插入一个标准模块,输入如下代码:
SubChangePicLoc()
出错时转到错误句柄
将布尔标记为布尔
将形状变暗
双重调暗数据库
双倍变暗
二进制八倍
双倍变暗
变暗文件作为变体打开
'检查所选取的是形状还是单元格
错误
对于活动表中的每个小水电.形状
如果小水电.名称=选择。名字然后
真
退出
其他
错误
如果…就会结束
下一个自行榴弹炮(Self Propelled Howitzer)
ErrHandle:
出错时转到结束句柄
如果blnFlag=真,那么
选择ShapeRange .
'保存所选图片的属性
dblTop=.顶端
dblLeft=.左边的
dblh8g=.高度
dblWidth=.宽度
以…结尾
'删除所选图片
选择。复制
选择。删除
'插入新图片
文件打开=应用程序GetOpenFilename
如果文件打开为假,则
活动纸。图片。插入(文件打开)。挑选
其他
MsgBox "没有选择图片文件!"
活动纸。粘贴
如果…就会结束
'将原图片属性应用于新图片
选择ShapeRange .Top=dblTop。Left=dblLeft。高度=dblHeight。宽度=dblWidth
以…结尾
其他
MsgBox "请选择图片,不要选择单元格区域."
如果…就会结束
endHandle:
末端接头
首先选取工作表中要替换的图片,然后运行代码,效果如下所示。