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-基于特定单元格隐藏/显示多个对象的主要内容,如果未能解决你的问题,请参考以下文章