2017-05-11 6 views
0

Ich wollte wissen, ist es möglich, Bild Links durch Mauszeiger über Bild URLs in Excel, Google Tabellen oder Tabellenkalkulation Editor Vorschau.Hover Vorschau über Excel Bild Link

+1

Die Frage nicht an die Leitlinien für [fragen]. I.E. es ist zu breit. –

Antwort

2

Sie haben mich neugierig gemacht, also habe ich mir das angeschaut.

Die Antwort ist, ja - es erfordert ein bisschen VBA und ist ein bisschen hacky, aber hier ist, wie Sie es tun können.

Zunächst einmal, etwas auf Zelle Hover in Excel zu tun ist ein bisschen hacky.

Um dies zu tun, verwenden wir die HYPERLINK Formel einer Zelle.

=HYPERLINK(OnMouseOver("http://i.imgur.com/rQ5G8sZ.jpg"),"http://i.imgur.com/rQ5G8sZ.jpg")

In diesem Fall habe ich die URL einer Grumpy Cat Bild in meine Formel.

gebe ich auch diesen Link zu einer Funktion I OnMouseOver

Dim DoOnce As Boolean 
Public Function OnMouseOver(URL As String) 
If Not DoOnce Then 
    DoOnce = True 
    With ActiveSheet.Pictures.Insert(URL) 
     With .ShapeRange 
      .LockAspectRatio = msoTrue 
      .Width = 75 
      .Height = 100 
     End With 
     .Left = Cells(1, 2).Left 
     .Top = Cells(1, 2).Top 
     .Placement = 1 
     .PrintObject = True 
    End With 
End If 
End Function 

schließlich aufgerufen, um zu erstellen, um es zu löschen, wenn wir weg bewegen, müssen wir einige Formeln in den anderen Zellen in der Nähe es ausdrückte.

=HYPERLINK(Reset())

Und die zugehörige Funktion:

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

Ergebnisse: Results

bearbeiten

auf diesem mit mehreren Links zu erweitern.

Wir können eine Zellreferenz zusammen mit diesem übergeben, um dies mit mehreren Links zu tun und sie neben der Zelle erscheinen zu lassen.

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 

Results2

+1

lol ich liebe, dass die Katzen. Das war ein paar clevere Programmierung Dank Bruder helfen mir viel – user1663590

+0

gibt es eine Möglichkeit, schnell Formel zu Links hinzuzufügen, wenn Sie mehrere Links in einer Zelle haben – user1663590

+0

Ich müsste Ihre Daten sehen, um zu wissen, was Sie versuchen zu tun. Vielleicht lohnt es sich, eine neue Frage zu stellen – user1274820