【问题标题】:Excel VBA to insert comments on selected cells and filled them with picturesExcel VBA 在选定单元格上插入注释并用图片填充它们
【发布时间】:2014-03-15 12:53:33
【问题描述】:

我有一个包含 150 多个单元格的列表,其中包含指向本地硬盘上图像的超链接, 昨天我找到了一种方法来弹出这些图像,方法是插入 cmets 并用图片填充背景。 一个一个地做这件事会很困难,所以我想要一个 VBA 脚本在选定的单元格上插入 cmets 并用其超链接位于每个单元格中的图像填充 cmets 背景。

这可能还是我应该手动完成?

这是单元格内容的示例

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    录制宏表明以上是可能的。不过,需要进行一些调整。例如,以下宏通过评论为A1 创建一个图像弹出窗口。

    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 用于处理已经有 cmets 的范围,因此您可以继续重复运行宏。我将.Visible 设置为False 以确保图像不会成为永久弹出窗口(应该只出现在悬停时)。

    我们可以进一步调整上面的内容来创建一个子例程,它接受一个范围和一个字符串作为参数,这样我们就可以跨范围重复调用它。

    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
    

    如果这有帮助,请告诉我们。

    编辑:

    如果您的日期在例如I1:I10,并且它们包含图像文件的确切 路径,那么上面的内容可以这样写:

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

    rCell.Value 将获取单元格内的值,将其传递给插入图像的子程序,并将其作为注释应用到rCell,并提取正确的图像。这应该不会失败。只需确保单元格中的值是其各自文件的正确路径即可。

    【讨论】:

    • 感谢您的回复,当 A1 中的路径与 A2 中的路径不同时,我无法弄清楚如何使用位于单元格中的路径设置背景图像。对不起,我是 VBA 和编码的初学者
    • 您的意思是:A1 的图像与 A2 不同,然后 A3 的图像又不同,等等?
    • 是的,每个单元格都有指向其图像的超链接。所以正如我所说,我想在这些单元格上插入 cmets,同时将其超链接图像添加到 cmets 作为背景
    • 包含超链接的完整范围是多少?您是在使用别名还是每个单元格中没有别名的确切路径图像?
    • 非常感谢,它可以工作但是有一个问题。我想将图像放入评论框中,图像现在以全尺寸显示,这不适用于我的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2022-11-03
    相关资源
    最近更新 更多