使用VBA在Excel中隐藏/取消隐藏形状

使用VBA在Excel中隐藏/取消隐藏形状,excel,vba,Excel,Vba,我有3个形状,分别命名为椭圆1、椭圆2和椭圆3,我需要根据从“A1”计算的值隐藏/取消隐藏这些形状,其中结果值为10、20和30,当椭圆1=10、椭圆2=20和椭圆3=30时。该图像显示一个错误框。我是怎么做到的 Private sub worksheet_change(byval target as range) If target.row = 1 and target.column = 1 then Me.shapes("Oval 1").Visible =

我有3个形状,分别命名为椭圆1、椭圆2和椭圆3,我需要根据从“A1”计算的值隐藏/取消隐藏这些形状,其中结果值为10、20和30,当椭圆1=10、椭圆2=20和椭圆3=30时。该图像显示一个错误框。我是怎么做到的

Private sub worksheet_change(byval target as range)

     If target.row = 1 and target.column = 1 then
          Me.shapes("Oval 1").Visible = (Cells(1, 1).Value = 10)

     If target.row = 1 and target.column = 1 then
          Me.shapes("Oval 2").Visible = (Cells(1, 1).Value = 20)

     If target.row = 1 and target.column = 1 then
          Me.shapes("Oval 3").Visible = (Cells(1, 1).Value = 30)
End sub
大概是这样的:

Private sub worksheet_calculate()
     Dim v 
     v = Me.Cells(1, 1).Value
     Me.shapes("Oval 1").Visible = (v = 10)
     Me.shapes("Oval 2").Visible = (v = 20)
     Me.shapes("Oval 3").Visible = (v = 30)
End sub

calculate事件没有目标参数-您需要使用从“工作表代码”模块右上角的下拉列表中选择事件时创建的方法签名:您不能修改它以添加参数。@paolo-抱歉,我对你之前的问题有一个解释,但删除了它。我能知道我需要在我的程序中修改什么才能让它工作吗?我是vba编程的新手。我需要对3500调查报告进行编码,以便我了解编程代码以帮助我减少工作量。因此,请在我的计划中加入我。:)如果你在问题中以文本形式发布代码,人们会更愿意帮助你修改代码——没有人想从你的截图中键入代码。您可以将粘贴复制到您的帖子中,并使用
{}
按钮对其进行格式化。简单而优雅,我仍然不知道其他形状是如何隐藏的。如果(例如)v为20,则
(v=10)
将计算为
False
,这样您就可以得到
Me.shapes(“椭圆形1”).Visible=False
有时很容易忽略基本要素。