我正在尝试根据单元格值将图片插入到Excel中。 Cell值位于图像路径中。我是新手,我所拥有的部分是基于录制宏和部分内容来查找内容。这就是我试过的......
我一直在ActiveSheet.Pictures.Insert
行
Sub Part_Picture()
'
' Part_Picture Macro
'
Dim imageName As String
Dim imageFolder As String
Dim imagePath As String
For Each Cell In Range("B7")
imageName = Cell.Value
imageFolder = "Q:\New Project Part Folders\Elizabeth Delgado\Database pictures\Part\" & imageName
imagePath = imageFolder & ".jpg"
Range("B11").Select
'
ActiveSheet.Pictures.Insert(imagePath).Select
Next Cell
End Sub
答案 0 :(得分:0)
"无法获取Pictures类的插入属性"是一个通用的错误消息,您可以将其翻译为"您尝试做的事情出了问题,我无法向您提供更多信息"。虽然图像文件的路径未正确构建,但很可能。
1)从insert语句中删除.Select
。在语法上它没有任何意义。只需使用ActiveSheet.Pictures.Insert(imagePath)
2)检查单元格B7中的值是否仅为文件名,不包括扩展名。由于您的代码添加了" .jpg"你不需要在B7。
3)检查文件实际上是jpg,而不是例如png
4)检查文件/文件夹是否实际存在
FYI For Each Cell In Range("B7")
只会迭代一个单元格 - B7 - 并且是不必要的。如果您只打算阅读一个单元格,则应使用imageName = Range("B7").Value
,或者更好,因为您需要使用字符串imageName = Range("B7").Text
答案 1 :(得分:0)
考虑这个选项。
Sub InsertPics()
Dim fPath As String, fName As String
Dim r As Range, rng As Range
Application.ScreenUpdating = False
fPath = "C:\your_path_here\"
Set rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
i = 1
For Each r In rng
fName = Dir(fPath)
Do While fName <> ""
If fName = r.Value Then
With ActiveSheet.Pictures.Insert(fPath & fName)
.ShapeRange.LockAspectRatio = msoTrue
Set px = .ShapeRange
If .ShapeRange.Width > Rows(i).Columns(2).Width Then .ShapeRange.Width = Columns(2).Width
With Cells(i, 2)
px.Top = .Top
px.Left = .Left
.RowHeight = px.Height
End With
End With
End If
fName = Dir
Loop
i = i + 1
Next r
Application.ScreenUpdating = True
End Sub
&#39;注意:您需要文件扩展名,例如&#39;,jpg&#39;或您正在使用的任何内容,因此您可以匹配。
无论您在A栏中放置什么图片名称,都会导入B列中的相邻单元格
答案 2 :(得分:0)
.Pictures.Insert(“ c:\ fixedfile.png”)询问修复文件名称作为其参数。但是,您可以使用FileCopy“ desiredfile.png”,“ fixedfile.png”替换fixfile.png的内容,从而满足您的需求。