【问题标题】:Excel And Statement to Display ShapeExcel和语句显示形状
【发布时间】:2022-01-17 23:36:42
【问题描述】:

可能是一个简单的问题,但我是新来的,很难过!

如果一个单元格包含一个值,一个形状是显示,一个是消失,但我无法让下面的代码对第二个形状做任何事情。见下文:

Sub Worksheet_Calculate()
     If Range("M17").Value = "Option A" Then
          Me.Shapes("Logo1").Visible = True And Me.Shapes("Logo3").Visible = False
          Else
           If Range("M17").Value = "Option B" Then
          Me.Shapes("Logo3").Visible = True And Me.Shapes("Logo1").Visible = False
            Else
            Me.Shapes("Logo3").Visible = False And Me.Shapes("Logo1").Visible = False
     End If
End If
End Sub

【问题讨论】:

  • And 是一个布尔运算符,将两个命令放在不同的行上,没有And。

标签: excel vba if-statement


【解决方案1】:

正如 Warcupine 在 cmets 中所述,And 是一个布尔运算符,通常用于条件语句中(例如在If 或While 中)

你想要的是两个不同的语句:

 Me.Shapes("Logo1").Visible = True 
 Me.Shapes("Logo3").Visible = False

如果您不同意,可以使用: 将两个语句分开,将它们放在同一行,但我强烈建议不要这样做:

Me.Shapes("Logo1").Visible = True : Me.Shapes("Logo3").Visible = False

但是,您可以使您的代码更简单:

Dim option as String 
option = Range("M17").Value 
Me.Shapes("Logo1").Visible = (option = "Option A")
Me.Shapes("Logo3").Visible = (option = "Option B")

术语(option = "Option A") 解析为True 或False,您可以将结果直接分配给Visible-property

【讨论】:

  • 非常感谢 FunThomas!效果很好!
猜你喜欢
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 2021-03-01
  • 1970-01-01
相关资源
最近更新 更多