Excel:将预览悬停在excel图片链接上-后续

时间:2019-09-17 02:59:23

标签: excel vba

Hover preview over excel image link

嗨,大家好-这是另一个问题的后续问题。对于多个URL提出的解决方案对我不起作用:它只是无限期地创建屏幕截图。我应该解决什么问题,使其仅创建一个并让我使用另一个RESET功能删除屏幕截图?

请帮助! @ user1274820 https://stackoverflow.com/users/1274820/user1274820

示例文件 https://wetransfer.com/downloads/e1478c699e43f1618879468e50006dc120190917130518/74fc7a

Dim DoOnce As Boolean
Public Function OnMouseOver(URL As String, TheCell As Range)
Reset
If Not DoOnce Then
    DoOnce = True
    With ActiveSheet.Pictures.Insert(URL)
        With .ShapeRange
            .LockAspectRatio = msoTrue
            .Width = 300
            .Height = 200
        End With
        .Left = Cells(TheCell.Row, TheCell.Column + 1).Left
        .Top = Cells(TheCell.Row, TheCell.Column + 1).Top
        .Placement = 1
        .PrintObject = True
    End With
End If
End Function

Public Function Reset()
If DoOnce Then
    DoOnce = False
    ActiveSheet.Pictures.Delete
End If
End Function

1 个答案:

答案 0 :(得分:0)

尝试这个。直接复制:

Dim DoOnce As Boolean

Public Function OnMouseOver(URL As String, TheCell As Range)
Reset
If Not DoOnce Then
    DoOnce = True
    With ActiveSheet.Pictures.Insert(URL)
        With .ShapeRange
            .LockAspectRatio = msoTrue
            .Width = 300
            .Height = 200
        End With
        .Left = Cells(TheCell.Row, TheCell.Column + 1).Left
        .Top = Cells(TheCell.Row, TheCell.Column + 1).Top
        .Placement = 1
        .PrintObject = True
    End With
End If
End Function

Public Function Reset()
If DoOnce Then
    DoOnce = False
    ActiveSheet.Pictures.Delete
End If
End Function

因此,在工作簿的A列中,将文件的路径(可以是本地路径或URL)放置在B列的=HIPERLINK(OnMouseOver(A2;E2);"Link")(即第2行,但可以将其向下拖动)中C列=HIPERLINK(Reset();"Del")。因此,当您将鼠标放在A和B列的顶部时,图像就会显示在E列上,您只需将光标放在C列上就可以从屏幕上删除它们。

希望有帮助。