Sub 按钮4_Click()
Dim iRow As Single, shp As Shape, Target As Range
With ActiveSheet
For iRow = 5 To .Cells(65536, 1).End(xlUp).Row
'取得A列最后一个非空单元格行号
.Pictures.Insert(ThisWorkbook.Path & "\pic\" & .Cells(iRow, 2) & ".jpg").Select
Set Target = .Cells(iRow, 4)
With Selection
.Top = Target.Top + 1
.Left = Target.Left + 1
.Width = Target.Width - 1
.Height = Target.Height - 1
End With
Next
End With
End Sub
代码是书上照抄的,但运行起来,说不能取得类picture 的insert属性。
是什么原因呢?帮我看看哪里出错。
是的,我用的是2010版。但不知道是不是这个原因。
如可以,请提供一下2010版的代码。根据第二列的名称插入图片。路径如上。
我无法确切的给你“2010”的代码,我这儿只有2007的,没有更高版本的Office 。
但估计在07版的代码,在10中也可以用。你可以试下是否一样:
你新建一个空白的工作簿,然后在VBA的立即窗口中执行下面的这句代码:
call sheet1.Shapes.AddPicture("x:\temp\01.jpg",msoFalse,msoCTrue,cells(3,2).left,cells(3,2).top, cells(3,2).width, cells(3,2).height )看能不能正确执行,在B3单元格插入了一张图片。
当然那儿实际的图片路径,要按你自己的写一个。
如果正确执行,你也可以按这代码所示,把自己现在的代码修改了。
看你贴的代码,好象是从第5行开始,A列有数据,就把B列中的“图片路径”所指的图片,
插入到同行D列的位置?
如果解决问题了,请采纳吧。
追问根据你的代码我改成这样了,但没反应,是怎么改呢?
有什么错误提示没啊?
还有一个就是,你可以先在 For 语句那儿设置一个断点,看代码是否被执行到了。
如果执行到了,被中断在那儿,你也要按F8跟踪几个循环,看它是否正常执行了循环流程。
按理说,如果执行了,又没提示错误,那么图片就插入到了你的“Sheet5”的工作表中了。
只是位置,是按当前的活动工作表单元格来定的,因为你后面的位置、大小参数,没有指定
工作表。