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
答案 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列上就可以从屏幕上删除它们。
希望有帮助。