这几句EXCEL中的VBA代码是什么意思?

有一个表格,主要的功能是就能够自动根据单元格的图片名字插入与表格所在的文件夹内同名图片,并能够以单元格大小为大小。(不方便上传附件,索要表格请加QQ441361981)

例如,表格放在桌面/新建文件夹内,同时有001.JPG、002.JPG等图片在内,表格内A1单元格内有001.JPG字样,其它单元格有00X.JPG字样,运行宏后,文件夹中的图片就自动插入到表格相应的单元格中。

功能没有问题,问题是原表格只设置了同时4张图片的插入,如果我要改成十张的,应该如何改?那代码又是什么意思?先上20分以示感谢,如果能成功解释,追加200分。
代码如下:

Sub 刷新4张照片() '刷新所有照片
On Error Resume Next '忽略错误继续执行

AA1 = Range("F5") '图片1
ActiveSheet.Shapes("Rectangle 127").Select '这句是什么意思?
Selection.ShapeRange.Fill.UserPicture AA1 '这句是什么意思?

AA2 = Range("M5") '图片2
ActiveSheet.Shapes("Rectangle 128").Select
Selection.ShapeRange.Fill.UserPicture AA2

AA3 = Range("M5") '图片3
ActiveSheet.Shapes("Rectangle 129").Select
Selection.ShapeRange.Fill.UserPicture AA3

AA4 = Range("M16") '图片4
ActiveSheet.Shapes("Rectangle 130").Select
Selection.ShapeRange.Fill.UserPicture AA4

Range("S3").Select '运行完后回到“S3”单元格
改成这样也可以正确运行,现在搞不明白的是("Rectangle 127")的意思和在代码中的具体作用。

Sub 刷新4张照片() '刷新照片
On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息

ActiveSheet.Shapes("Rectangle 127").Select '这句是什么意思?
Selection.ShapeRange.Fill.UserPicture Range("F5") '这句是什么意思?

ActiveSheet.Shapes("Rectangle 128").Select
Selection.ShapeRange.Fill.UserPicture Range("M5")

ActiveSheet.Shapes("Rectangle 129").Select
Selection.ShapeRange.Fill.UserPicture Range("F16")

ActiveSheet.Shapes("Rectangle 130").Select
Selection.ShapeRange.Fill.UserPicture Range("M16")

Range("S3").Select '运行完后回到“S3”单元格
End Sub

代码如下,记得采纳答案,谢谢支持。

For i = 1 To ActiveSheet.UsedRange.Rows.Count '循环读取A列的值,自动判断输入的行数
s = ActiveSheet.Cells(i, 1).Value 'A列单元格的值

'与表格在相同文件夹下的图片的路径,这里指定是JPG图片文件
'如果是其他扩展名的图片文件,请修改,如GIF,PNG等

If Len(s) > 0 Then
s = ThisWorkbook.Path & "\" & s & ".jpg"
If Dir(s) = "" Then '指定的图片文件不存在

ActiveSheet.Cells(i, 2).Value = "图片文件不存在" '在B列同一行单元格中输出

Else '存在

'根据B列单元格的位置,大小,自动添加图片框,然后装载A列中指定的图片

ileft = ActiveSheet.Cells(i, 2).Left 'B列单元格的左边位置
itop = ActiveSheet.Cells(i, 2).Top '顶边位置
iwidth = ActiveSheet.Cells(i, 2).Width '宽
iheight = ActiveSheet.Cells(i, 2).Height '高
ActiveSheet.Shapes.AddShape(msoShapeRectangle, ileft, itop, iwidth, iheight).Select

Selection.ShapeRange.Fill.UserPicture s

End If
End If
Next
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-09
AA1 = Range("F5") '图片1
ActiveSheet.Shapes("Rectangle 127").Select '这句是什么意思?
Selection.ShapeRange.Fill.UserPicture AA1 '这句是什么意思?

AA2 = Range("M5") '图片2
ActiveSheet.Shapes("Rectangle 128").Select
Selection.ShapeRange.Fill.UserPicture AA2
1比较两段代码不同点
2.复制10遍
3.将不同点修改一下
4ok追问

大师,我试过了,复制十次后得到的代码如下,运行是没有提示任何错误,但是实际上图片并不像原来的一样自动插入,而且原来的4张也不能用了。所以很困惑。

追答

把资料传给我,我看看。邮箱[email protected]

第2个回答  2011-09-09
百度一下!!!追问

我现在不是来百度了吗。

第3个回答  2011-09-09
相似回答