我正在构建一个包含不同部分的表单。我不想使用命令按钮或切换按钮(它们的外观很难看),因为这是针对客户的,所以我希望它对用户友好。无论如何,基本上我想构建一个宏,当他们单击形状时,它将折叠不必要的行并展开正确的行。
到目前为止,这是我能够找到的...但它仅适用于命令按钮。
Private Sub CommandButton1_Click()
With Me.CommandButton1
If .Caption = "Initial Request" Then
.Caption = "Hide Rows"
Rows("12:20").Hidden = False
Else
.Caption = "Initial Request"
Rows("12:200").Hidden = True
End If
End With
End Sub
这工作得很好...但是,有没有办法对其进行转换,以便可以将其添加到模块中,从而分配给形状?
非常感谢您的帮助
最佳答案
您可以添加一个形状,例如矩形
,并为其指定一个宏,并使用与您的等效代码:
Sub Rectangle2_Click()
With Sheet3.Shapes("rectangle 2").TextFrame2.TextRange
If .Text = "Initial Request" Then
.Text = "Hide Rows"
sheet3.Rows("12:20").Hidden = False
Else
.Text = "Initial Request"
sheet3.Rows("12:20").Hidden = True
End If
End With
End Sub
显然,在此示例中,我向 Sheet3
添加了一个矩形形状,并将其命名为“矩形 2”。您应该根据您的情况调整这些名称。
关于vba - 使用 Excel VBA 展开和折叠行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42792971/