在活动工作表中显示和隐藏形状
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 2")).Visible = Not ActiveSheet.Shapes.Range(Array("Rounded Rectangle 2")).Visible ActiveSheet.Shapes.Range(Array("Rounded Rectangle 3")).Visible = Not ActiveSheet.Shapes.Range(Array("Rounded Rectangle 3")).Visible ActiveSheet.Shapes.Range(Array("Rounded Rectangle 4")).Visible = Not ActiveSheet.Shapes.Range(Array("Rounded Rectangle 4")).Visible ActiveSheet.Shapes.Range(Array("Rounded Rectangle 5")).Visible = Not ActiveSheet.Shapes.Range(Array("Rounded Rectangle 5")).Visible
这是我使用的代码macros的示例
我想知道我们如何才能运行这个代码来隐藏只有矩形1行
喜欢
For i = 1 To ActiveSheet.Shapes.Count ActiveSheet.Shapes.Range(Array("Rounded Rectangle *")).Visible = _ Not ActiveSheet.Shapes.Range(Array("Rounded Rectangle *")).Visible Next i
我只是不知道如何正确简化
你不远处,这是如何使用循环遍历所有的Rounded Rectangles
Dim i As Long For i = 1 To ActiveSheet.Shapes.Count ActiveSheet.Shapes.Range(Array("Rounded Rectangle " & i)).Visible = _ Not ActiveSheet.Shapes.Range(Array("Rounded Rectangle " & i)).Visible Next i
请注意如何"Rounded Rectangle " & i
被replace为
"Rounded Rectangle 1"
"Rounded Rectangle 2"
"Rounded Rectangle n"
,其中n = i
(表示循环运行的次数)
因此,如果您只想隐藏第一个Rounded Rectangle 1
,则在您的循环中添加一个If / else语句
注意 :这段代码永远不会显示第一个Rounded Rectangle 1
并在显示其他所有Rounded Rectangle 1
之间切换 。 如果你想总是显示它们,那么只需在else语句中指定true
Dim i As Long For i = 1 To ActiveSheet.Shapes.Count If i = 1 Then ActiveSheet.Shapes.Range(Array("Rounded Rectangle " & i)).Visible = False Else ActiveSheet.Shapes.Range(Array("Rounded Rectangle " & i)).Visible = _ ActiveSheet.Shapes.Range(Array("Rounded Rectangle " & i)).Visible End If Next i