VBA-基于特定单元格隐藏/显示多个对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA-基于特定单元格隐藏/显示多个对象相关的知识,希望对你有一定的参考价值。

我创建了一些标志进行组合,以便根据特定单元格的值隐藏和显示一些图形。单元格为U47,根据可能的组合,我需要显示的图形是:

11,21,31->图形预分割

12、22、32->图形PosSeg

41->图形预览

42->图形位置

我尝试了下面的代码,图形PreTot和PosTot正常工作,但是当我单击按钮将Flag更改为11,21,31,12,22或32时,PreSeg和PosSeg图形将不会显示上]。

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

If UCase(ActiveSheet.Cells(47, 21)) = "41" Then
ActiveSheet.Shapes.Range(Array("PreTot")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PreTot")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "42" Then
ActiveSheet.Shapes.Range(Array("PosTot")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PosTot")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "11" Then
ActiveSheet.Shapes.Range(Array("PreSeg")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PreSeg")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "21" Then
ActiveSheet.Shapes.Range(Array("PreSeg")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PreSeg")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "31" Then
ActiveSheet.Shapes.Range(Array("PreSeg")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PreSeg")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "12" Then
ActiveSheet.Shapes.Range(Array("PosSeg")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PosSeg")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "22" Then
ActiveSheet.Shapes.Range(Array("PosSeg")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PosSeg")).Visible = False
End If

If UCase(ActiveSheet.Cells(47, 21)) = "32" Then
ActiveSheet.Shapes.Range(Array("PosSeg")).Visible = True
Else
ActiveSheet.Shapes.Range(Array("PosSeg")).Visible = False
End If

    End Sub


有人可以帮我吗?希望大家有一个美好的一天!谢谢

我创建了一些标志进行组合,以便根据特定单元格的值隐藏和显示一些图形。单元格为U47,我需要根据可能出现的图形显示...

答案

尝试此代码:

以上是关于VBA-基于特定单元格隐藏/显示多个对象的主要内容,如果未能解决你的问题,请参考以下文章

隐藏在 VBA 中的多行

excel中怎样用vba使单元格在特定条件下才可以编辑?

选择特定范围的单元格并仅删除突出显示的单元格并向上移动的 VBA

excel等于某个值自动 隐藏/显示 整行 求教VBA代码

vba日历控件只能在一个单元格用怎么办

VBA 突出显示边界条件外范围内的单元格