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
这是我使用的代码宏示例
我想知道如何运行此代码来仅隐藏矩形 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
我只是不知道如何正确简化
最佳答案
你离得不远了,这是如何使用循环遍历所有圆角矩形
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
注意如何将“圆角矩形”和i
替换为
“圆角矩形1”
“圆角矩形2”
“圆角矩形n”
,其中n = i
(表示循环运行的次数)
圆角矩形 1
,请在循环中添加 If/else 语句
注意:此代码永远不会显示第一个
圆角矩形 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
关于vba - 显示和隐藏事件工作表中的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17360067/