Excel VBA:填充.用户图片

Excel VBA:填充.用户图片

cell.Comment.ShapeRange...收到一个错误:“运行时错误‘1004’:应用程序定义或对象定义错误”。这是什么问题?

Cells(cell.Row, 6)是包含图像 URL 的引用列。例如http://somelink.com/img.jpg

Sub test()
Dim rng As Range


Set rng = Range("B2:B2331")


For Each cell In rng.Cells
    cell.AddComment
    cell.Comment.Text Text:="Owner:" & Chr(10) & ""
    cell.Comment.ShapeRange.Fill.UserPicture Cells(cell.Row, 6).Value
Next


End Sub

答案1

首先,.shaperange它不是一个属性或方法,comment所以您不能使用它。

这是一个可行的例子 -

Sub tete()
Dim rng As Range
Set rng = ActiveSheet.Cells(5, 6)
rng.AddComment
rng.Comment.Text Text:="hi"
rng.Comment.Shape.Fill.UserPicture ("C:\Users\path\to\pic.jpg")
End Sub

这让我们了解到需要以字符串形式呈现路径的用法.UserPicture()。因此,如果您的路径位于该单元格中,请确保您获取的是它的值。

因此如果单元格 G1 =C:\Users\path\to\pic.jpg

rng.Comment.Shape.Fill.UserPicture (Range("G1"))

会工作。


这是由历史标记我允许这样做,是因为它不会改变答案的初衷,而且因为它很大程度上基于答案,所以它可能不会做得太好,或者作为新答案不具有可见性。

此版本适用于 macOS 10.10.5 和 Excel 2011。

Sub tete()
' Raystafarian
'    https://superuser.com/a/1011255/2638314

' This is the shortest code I have seen for inserting a picture into
'   a commnet.  & It works.

Dim rng As Range
Dim aPicture As String
Debug.Print "-------------------------- " & Now
aPicture = "Macintosh SSD:Users:mac:Desktop:numbers:1.png"
Set rng = ActiveSheet.Cells(5, 8)
rng.AddComment
rng.Comment.Text Text:=" "
Debug.Print aPicture
rng.Comment.Shape.Fill.UserPicture (aPicture)
End Sub

相关内容