簡體   English   中英

Excel VBA在選定的單元格上插入注釋並用圖片填充它們

[英]Excel VBA to insert comments on selected cells and filled them with pictures

我有一個150多個單元的列表,其中包含到本地硬盤上圖像的超鏈接,昨天我找到了一種通過插入注釋並用圖片填充背景來彈出這些圖像的方法。 很難一一完成,所以我想讓VBA腳本在選定的單元格上插入注釋,並用超鏈接位於每個單元格中的圖像填充注釋背景。

那有可能還是我應該手動進行?

這是單元格內容的示例

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

記錄宏表明以上是可能的。 不過,需要進行一些微調。 例如,以下宏通過注釋為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用於處理已經有注釋的范圍,因此您可以繼續重復運行宏。 我將.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 ,並提取適當的圖像。 這應該不會失敗。 只要確保該單元格中的值是它們各自文件的正確路徑即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM