2016-11-14 50 views
0

我很難爲此編寫代碼。 因此,我們有四個單元格的變量值,一個圖片應該出現,取決於單擊按鈕時具有最高值的單元格。根據最高值在Excel中顯示特定圖像

示例:如果單元格A1的值高於其他單元格,單擊按鈕時應顯示圖片A,如果單元格B1的值較高,則應顯示分配給該單元格的圖片B。

我們盡力了,但無法找到一個解決方案,任何幫助,將不勝感激

+3

你可以發佈你的方法的代碼? – Limak

+2

你沒有努力尋找解決方案,我想:http://stackoverflow.com/questions/9198097/excel-vba-if-cell-value-equals-then-show-hide-images –

回答

1

那麼,這是一些小事,但這裏是我會怎麼做:

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 

在細胞A1你應該把圖片的名字。因此,基於它,圖像將是可見或不可見的。圖像應該是一種形式。上面的代碼是在表單中。

1

有很多解決方案。其中之一是有一些文件夾與你想要顯示的圖片,並將它們命名爲最大值的行。例如。如果最大值在第3行,則會顯示picture3.jpg文件。

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 

編輯:

如果你想重新定位圖像,你也可以重新命名,並使用一些讚揚做到這一點。

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