使用Excel中的“名称管理器”动态更改图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Excel中的“名称管理器”动态更改图像相关的知识,希望对你有一定的参考价值。

我有一个动态行数的表。有一个特定的列可以根据旁边单元格的值更改图像。

我尝试过使用本指南:

https://www.youtube.com/watch?v=yHBQ9Qxli3M

但它只能用于特定行而不能动态使用。我尝试过使用:

=INDIRECT("RC[-1]",0)

在我的图像名称中,但似乎没有根据目标细胞进行更改。

我的excel文件的链接:

https://drive.google.com/open?id=1v1RXhdPYU4j2CqxgNEWUtJ8gHbZV33xN

答案

还有另一种方法可以通过VBA来实现。您可以将此代码放在“Sheet1”下。它会检测何时对列M进行更改,然后从查找表中复制并粘贴图像。

注意:

  • 它仅在值1插入单元格时有效
  • 删除'1'值会删除图像
  • 向下拖动1个值将无效(尽管可以调整宏)。最好一次输入一个'1'值;)

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells, SelectedCells As Range, s As Shape
    Set KeyCells = Range("M13:M1000")
    Set SelectedCells = Range(Target.Address)

    If Not Application.Intersect(KeyCells, SelectedCells) Is Nothing Then
    'Place a 1 in the cell to insert an image
    If Application.Sum(Range(Target.Address)) = 1 Then        
      Sheets("Shapes").Shapes("Shape" & Range(Target.Address).Offset(0, -2).Value).Copy
      ActiveSheet.Paste
      Selection.Left = SelectedCells.Left
      Selection.Top = SelectedCells.Top
      SelectedCells.Select    
    Else 'Deletes the pictures if a 1 is not present
      For Each s In ActiveSheet.Shapes
        If Not Intersect(SelectedCells, s.TopLeftCell) Is Nothing Then
            s.Delete
        End If
      Next s 
    End If
    End If
    End Sub

以上是关于使用Excel中的“名称管理器”动态更改图像的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL 图表横轴如何在数据刷新后只保留显示非0值或非错误值?

单击 Excel 中的图标后动态更改图表

使用 jquery 更改动态加载图像的 src

在 iOS 中动态更改启动图像

excel快速生成文件目录索引

Django CMS 动态图像