【问题标题】:Showing a specific image in Excel depending on highest value根据最大值在 Excel 中显示特定图像
【发布时间】:2016-11-14 17:49:16
【问题描述】:

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

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

我们尽了最大努力,但找不到解决方案,我们将不胜感激

【问题讨论】:

标签: vba excel


【解决方案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 中,您应该输入图像的名称。因此,基于它,图像将可见或不可见。图像应该是一种形式。上面的代码在表单中。

【讨论】:

    【解决方案2】:

    有很多解决方案。其中之一是有一些包含您要显示的图片的文件夹,并将它们命名为具有最大值的行。例如。如果最大值在第 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多