gpt4 book ai didi

excel - 根据 VBA Excel 中的复选框值显示或删除图像

转载 作者:行者123 更新时间:2023-12-04 20:55:34 25 4
gpt4 key购买 nike

我有一个在 D2:D10 范围内插入图像的代码基于 B2:B10 范围内的单元格值.因此,如果我在 B2 中输入正确的值,图像将出现在 D2等。但是,我想添加一个复选框来控制图像的可见性。

所以我希望 Excel 能够:

  • 当复选框为真且单元格 B2 时显示图像有一个正确的值
  • 当复选框为假时删除图像,即使 B2 仍然具有正确的值。

  • 所以我认为复选框应该是启动宏的 Action ,但我不知道如何做到这一点。因为现在宏在我输入值时运行。在我当前的代码中,我什至没有复选框。

    我从来没有做过这样的事情。这有可能做到吗?
    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myPict As Picture
    Dim PictureLoc As String
    Dim rng As Range, cell As Range
    Set rng = Range("B2:B10")
    If Not Intersect(Target, rng) Is Nothing Then
    Application.EnableEvents = False
    PictureLoc = "C:\Users\" & Target.Value & ".png"
    Set cell = Target.Offset(, 2)
    With cell
    On Error Resume Next
    Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
    myPict.Select
    With Selection
    .Height = 30
    .Width = 60
    .Top = cell.Top + cell.Height / 2 - .Width / 2
    .Left = cell.Left + cell.Width / 2 - .Width / 2
    Rows(Target.Row).RowHeight = .Height
    End With
    On Error GoTo 0
    End With
    Application.EnableEvents = True
    End If
    End Sub

    最佳答案

    这是一个解决方案:

  • 将复选框放在 C 列中
  • 添加一个空列 (D)
  • 将每个复选框链接到 D 中的相应单元格。例如,将 C3 中的复选框链接到单元格 D3。您可以通过右键单击复选框并选择“格式控制”来执行此操作。然后转到控制选项卡并设置单元格链接。现在,当您选中和取消选中复选框时,此单元格将更改为 TRUEFALSE .
  • 在单元格 E2 中,使用公式:
    =and(D2,B2="correct")

  • B2="correct"替换为您当前计划检查 B2 是否正确的任何方式。
  • 创建上面的宏,但不要使用该操作。相反,将其设为一个名为 LoadPic ( ByVal Target as Range ) 的普通宏,并将您的 If 语句更改为:
    If Not Intersect(Target, Rng) Is Nothing And Cells(Target.Row, 5) = True Then
  • 创建更改宏以捕获对 B 列的更改,但让它调用您的其他宏:
    Private Sub Worksheet_Change(ByVal Target As Range)

    Call loadPic(Target)

    End Sub
  • 单击复选框时创建另一个宏:
    Sub clickCheckBox()
    Dim ClickedCheckBox As CheckBox
    Dim source As String
    source = Application.Caller

    Set ClickedCheckBox = ActiveSheet.CheckBoxes(Application.Caller)
    Call loadPic(Range(ClickedCheckBox.LinkedCell))
    End Sub
  • 右键单击并将此宏分配给您的每个图像。

  • 那应该行得通。

    关于excel - 根据 VBA Excel 中的复选框值显示或删除图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287745/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com