vba - 使用 Excel VBA 展开和折叠行

标签 vba excel

我正在构建一个包含不同部分的表单。我不想使用命令按钮或切换按钮(它们的外观很难看),因为这是针对客户的,所以我希望它对用户友好。无论如何,基本上我想构建一个宏,当他们单击形状时,它将折叠不必要的行并展开正确的行。

到目前为止,这是我能够找到的...但它仅适用于命令按钮。

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/

相关文章:

excel - 将格式化的 Excel 范围粘贴到 Outlook 邮件中

ms-access - 将当前日期时间插入审计表

sql-server - 使用 ADODB 中的变量从 SQL Server 存储过程返回结果

VBA 宏触发与工作簿打开不同的宏

excel - VB Excel 删除单元格中指定值的行

excel - 在 COUNTIFS 语句中引用公式日期

excel - 如何禁用特定工作簿的单元格拖放?

excel - 我如何在vba中正确格式化它

arrays - 如何一次从用户窗体添加多个数据行到 Excel 数据库

VBA Excel将值添加到字典