Excel VBA在选定的单元格中插入注释并填充图片

我有超过150个单元格包含超链接到本地​​硬盘上的图像列表,昨天我find了一种方式来popup这些图像插入评论与填充背景的图片。 所以我想要一个VBA脚本在选定的单元格中插入注释,并用超链接位于每个单元格中的图像填充注释背景。

这是可能的,或者我应该手动吗?

这里是一个单元格内容的例子

I1 D:\My Pictures\example 001.jpg I2 D:\My Pictures\example 021.jpg I3 D:\My Pictures\example 030.jpg 

录制一个macros显示以上是可能的。 虽然有点调整是为了。 例如,下面的macros通过A1注释创build一个图像popup窗口。

 Sub Test() Dim Comm As Comment On Error Resume Next Range("A1").AddComment Range("A1").Comment.Visible = False Set Comm = Range("A1").Comment Comm.Shape.Fill.UserTextured "C:\foo\bar.gif" End Sub 

On Error Resume Next用于处理已经有注释的范围,因此您可以继续反复运行macros。 我设置了可.Visible False是安全的,图像不会成为永久popup窗口(只应出现在hover)。

我们可以进一步调整上面的内容来创build一个子范例,它将一个范围和一个string作为参数,所以我们可以在范围内重复地调用它。

 Sub CreatePopUp(TargetRange As Range, PathToImage As String) Dim Comm As Comment On Error Resume Next With TargetRange .AddComment .Comment.Visible = False Set Comm = .Comment End With Comm.Shape.Fill.UserTextured PathToImage End Sub 

以上可以这样调用:

 Sub MassPopUp() Dim rCell As Range For Each rCell In [A1:A10] CreatePopUp rCell, "Blah" Next End Sub 

让我们知道这是否有帮助。

编辑:

如果你的date是在例如I1:I10 ,并且它们包含图像文件的确切path,那么上面的代码可以这样写:

 Sub MassPopUp() Dim rCell As Range For Each rCell In [I1:I10] CreatePopUp rCell, rCell.Value Next End Sub 

rCell.Value将取单元格内的值,将其传递给插入图像的子例程,并将其作为注释应用于rCell并提取正确的图像。 这不应该失败。 只要确保单元格中的值是各自文件的正确path。