(Excel VBA) 如果单元格值等于“”则显示/隐藏图像

2023-11-24

我正在开发一个 Excel 电子表格,当选择下拉框值时,将弹出一个图像,如果选择另一个值,它将隐藏当前图像并弹出与所选内容相关的图像。我发现一些仅使用纸张并使用坐标定位图像的方法太耗时;这并不完全是我想要走的路线。在使用 StackOverflow 之前我已经做了相当多的研究,但到目前为止似乎没有任何效果。以下是我想要实现的目标。我试图将所有图像保留在电子表格中,这增加了另一个级别的挑战,但我相信有一种方法可以做到这一点,因为 Excel 在插入时会为图像分配一个数字前任。图9.

Sub Main()
   If Range(G11).Value = "anything" Then

   Picture1 show

   Picture2 hide

   End If
End Sub

任何帮助是极大的赞赏。谢谢


与其隐藏/移动/减小不需要的图片的大小,为什么不直接删除它呢?

Logic: 将所有图像保存在临时表中。当需要显示相关图片时,从临时表中获取它并删除前一个。

这是一个例子。

Sub Sample()
    Select Case Range("G11").Value
        Case "Picture 1": ShowPicture ("Picture 1")
        Case "Picture 2": ShowPicture ("Picture 2")
        Case "Picture 3": ShowPicture ("Picture 3")
        Case "Picture 4": ShowPicture ("Picture 4")
    End Select
End Sub

Sub ShowPicture(picname As String)
    '~~> The reason why I am using OERN is because it is much simpler
    '~~> than looping all shapes and then deleting them. There could be
    '~~> charts, command buttons and other shapes. I will have to write
    '~~> extra validation code so that those shapes are not deleted.
    On Error Resume Next
    Sheets("Sheet1").Shapes("Picture 1").Delete
    Sheets("Sheet1").Shapes("Picture 2").Delete
    Sheets("Sheet1").Shapes("Picture 3").Delete
    Sheets("Sheet1").Shapes("Picture 4").Delete
    On Error GoTo 0

    Sheets("Temp").Shapes(picname).Copy

    '<~~ Alternative to the below line. You may re-position the image 
    '<~~ after you paste as per your requirement
    Sheets("Sheet1").Range("G15").Select 

    Sheets("Sheet1").Paste
End Sub

临时表快照

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(Excel VBA) 如果单元格值等于“”则显示/隐藏图像 的相关文章

  • 雅虎财经历史股价动力查询返回301响应

    直到今天我的 Excel 2016 power query 都能够从以下 URL 获取历史股票定价数据https finance yahoo com quote AAL history p AAL https finance yahoo c
  • VBA按空格分割字符串

    我想要一个 Excel 函数 我可以调用该函数并将单元格传递到其中 输入 Firstname Lastname email protected cdn cgi l email protection Firstname midname Las
  • 在没有加载项的情况下加载 Excel

    All 我编写了一个电子表格应用程序 用户通过双击我提供的图标来加载它 问题是用户有很多插件 这会降低 Excel 的速度 如何使用命令行开关加载 Excel 来禁用所有加载项 该问题适用于 Excel 2003 和 Excel 2007
  • 使用 SpreadsheetLight 进行行计数

    我正在寻找一个类似于 DataTable Rows Count 的函数 它可以与 SLDocument 一起使用来找出有多少行中有数据 SpreadsheetLight 中有可用的东西吗 还有其他方法可以实现这一目标吗 Brendan SL
  • 如果单元格包含 1 个或多个关键字,则更改不同单元格的值

    我有一个列 其中包含一些字符串描述 例如 Bob davids mowing the lawn tipping cows 此外 我将在不同的工作表或列上列出关键字列表 例如工作关键字列表1 davids work 播放关键字列表 mowin
  • 删除 Excel 表格中的所有数据行(第一行除外)

    就在最近 我一直在尝试删除表中的所有数据行 除了第一个数据行 需要清除 一些正在执行的表可能已经没有行 所以我运行它时遇到问题 因为使用 DataBodyRange Rows Count在没有行 只有页眉和 或页脚 的表上会导致错误 我到处
  • 使用 UiPath 循环 Excel 文件中的 URL

    我尝试了几种方法 但不知怎的 它们看起来不干净 我有一个 Excel 格式的 URL 文件 一列中有 400 多个 URL 我希望 UiPath 从该文件中读取并一一浏览这些 URL 我尝试让 导航到 从从 Excel 读取的变量中读取 但
  • 解析未完全加载 VBA 的网站

    尝试进行简单的网络解析 我的问题是页面在向下滚动之前无法完全加载 谷歌搜索已经提出可能使用硒 但由于我不知道如何使用它 我想我会在这里问 我使用的代码 Sub gfquote Dim oHttp As MSXML2 XMLHTTP Dim
  • 如何保留每个单元格中合并单元格的值?

    我创建了一个包含合并单元格的工作表 但合并单元格的值仅存储在第一个单元格中 无论如何 为了在每个单元格中保持相同的值 我使用的公式需要它 谢谢 在 Excel 2003 中 此宏执行以下任务 Public Sub UnmergeAndFil
  • Excel 的查找和查找下一个 VBA

    我一直在试图弄清楚如何处理这个问题 但基本上我想要一种方法来打印 B 列中的值 给定与 A 列匹配的特定值 例如 Column A Column B 1 ABC 2 DEF 3 GHI 1 JKL 我想在使用 find findnext 或
  • 尝试使用变量作为自动过滤器中的条件,并带有“不等于”<>,但无法使其工作

    我正在使用 Excel VBA 使用 不等于 表达式来过滤列表 如果我使用Criteria1 lt gt Bob 代码运行完美 但如果我将 Bob 更改为变量 代码将无法运行 这有效 ActiveSheet ListObjects Rpt
  • VBA C# DLL 未注册

    我制作了一个 C NET dll 我想从 VBA 运行它而不注册它 我找到了解决方案there https stackoverflow com a 13333819并且它可以完美工作 但前提是程序集是使用 Framework NET 3 5
  • 是否有任何公式可用于将特定单元格复制指定次数?

    目前我正在处理一份数据 其中我有一个公司名称列表 例如 1 A 2 B 3 C 还有很多 需要的结果是 1 A 2 A 3 A 4 A 5 A 6 B 7 B 8 B 9 B 10 B 11 C 12 C 13 C 14 C 15 C 等等
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • Excel VBA:排序,然后复制和粘贴

    所有 我需要编写一个执行以下操作的宏 将数据输入到 E 列的最后一个空白单元格后 按 E 列对整个工作表进行降序排序 工作表排序后 2a 将单元格复制到紧邻首次输入数据的单元格左侧的相邻单元格 2b 将复制的数据粘贴到最初输入数据的同一行的
  • alasql 需要已包含的 xlsx

    我正在尝试使用将数据导出到 Excel 工作表alasql and xlsx 我已遵循此处的所有准则 https github com agershun alasql wiki Xlsx https github com agershun
  • 关闭工作簿时删除范围,xls vba

    我想要范围 Range A2 G z 关闭工作簿时删除 有人可以帮我处理代码吗 谢谢 凯 这就是我尝试过的 Option Explicit Sub Makro1 insert clipboard Workbooks Pfl SchutzSt
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • 索引匹配不起作用

    对于下表 如果 A 列和 B 列都匹配 如何检索 C 列A 列 B 列 C 列城市 1 城市 10 本地城市 2 城市 21 远程城市 3 城市 1 远程城市 4 城市 2 本地 我尝试使用索引和匹配 但得到 N A Enter as an
  • 根据其他列中的条件对列中的唯一值求和

    A B 1 Total 1 900 2 Product A 700 3 Product A 700 4 Product B 300

随机推荐