根据最高值在Excel中显示特定图像

时间:2016-11-14 08:49:27

标签: vba excel-vba excel

我很难为此编写代码。 因此,我们有四个具有可变值的单元格,当单击一个按钮时,应根据具有最高值的单元格显示图片。

示例:如果单元格A1的值高于其他单元格,则单击按钮时应显示图片A,如果单元格B1的值较高,则应显示分配给该单元格的图片B. p>

我们尽力而为但无法找到解决方案,任何帮助都将不胜感激

2 个答案:

答案 0 :(得分: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 :(得分: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