2016-11-14 4 views
0

Ich habe es wirklich schwer, einen Code dafür zu schreiben. Wir sind also vier Zellen mit variablen Werten, ein Bild sollte abhängig von der Zelle mit dem höchsten Wert erscheinen, wenn auf eine Schaltfläche geklickt wird.Zeige ein bestimmtes Bild in Excel abhängig vom höchsten Wert

Beispiel: Wenn der Wert von Zelle A1 höher ist als der anderer Zellen, sollte Bild A beim Klicken auf eine Schaltfläche angezeigt werden. Wenn der Wert von Zelle B1 höher ist, sollte Bild B angezeigt werden.

wir unser Bestes versucht, aber konnte keine Lösung finden, würde jede mögliche Hilfe

+3

Konnten Sie den Code von Ihrem Ansatz veröffentlichen? – Limak

+2

Sie haben nicht versucht, eine Lösung zu finden, denke ich: http://stackoverflow.com/questions/9198097/excel-vba-if-cell-value-equals-then-show-hide-images –

Antwort

1

Nun, das ist etwas trivial, aber hier ist, wie ich es tun würde, geschätzt werden:

Public Sub ShowPic() 
    Me.s1.Visible = b_is_visible(Me.s1.Name) 
    Me.s2.Visible = b_is_visible(Me.s2.Name) 
End sub 

Public Function b_is_visible(str_name As String) As Boolean 

    If str_name = cells(1,1) Then 
     b_is_visible = True 
    end if 

End Function 

in der Zelle A1 solltest du den Namen des Bildes angeben. Auf dieser Grundlage wäre das Bild entweder sichtbar oder nicht. Die Bilder sollten in einer Form sein. Der obige Code ist in der Form.

1

Es gibt viele Lösungen. Einer von ihnen ist, einen Ordner mit Bildern zu haben, die Sie anzeigen möchten, und benennen Sie sie als Zeilen mit maximalem Wert. Z.B. Wenn der maximale Wert in Zeile 3 ist, wird die Datei picture3.jpg angezeigt.

Sub test123() 
Dim Rng As Range 
Dim maxRow As Integer, maxVal As Integer 

Set Rng = Range("A1:A4") 
maxVal = Application.WorksheetFunction.Max(Rng) 
picNum = Application.Match(maxVal, Rng, 0) 

ActiveSheet.Pictures.Delete 
ActiveSheet.Pictures.Insert("K:\user files\user 1\pictures\picture" & picNum & ".jpg").Select 

End Sub 

EDIT:

Wenn Sie Bild neu zu positionieren möchten, können Sie es tun, indem er die Umbenennung und einige beglückwünscht werden.

Selection.ShapeRange.Name = "Pic1" 
ActiveSheet.Shapes("Pic1").Left = ActiveSheet.Cells(2, 2).Left 
ActiveSheet.Shapes("Pic1").Top = ActiveSheet.Cells(2, 2).Top 
ActiveSheet.Shapes("Pic1").Height = ActiveSheet.Range("G1:G7").Height 
ActiveSheet.Shapes("Pic1").Width = ActiveSheet.Range("B1:G1").Width 
Verwandte Themen