我正在构建一个包含不同部分的表单。我不想使用Command按钮或Toggle按钮(它们看起来很难看),因为这是为了客户端,我希望它是用户友好的。无论如何所以基本上我想构建一个宏,当他们点击形状时,它将折叠不必要的行并展开右行。
到目前为止,这是我能找到的......但它只适用于命令按钮。
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
这完全有效......但是,有没有办法对其进行转换,以便可以将其添加到模块中并因此分配给形状?
非常感谢您的帮助
答案 0 :(得分:3)
您可以添加一个形状,比如说Rectangle
并为其指定一个宏,并将此等效代码分配给您:
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"。您应该根据您的情况调整这些名称。
答案 1 :(得分:1)
尝试使用此代码:
Option Explicit
Sub Cloud_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2")
If ws.Shapes("Cloud 2").TextFrame2.TextRange.Text = "Initial Request" Then
ws.Shapes("Cloud 2").TextFrame2.TextRange.Text = "Hide rows"
ws.Rows("12:20").Hidden = False
Else
ws.Shapes("Cloud 2").TextFrame2.TextRange.Text = "Initial Request"
ws.Rows("12:20").Hidden = True
End If
End Sub
我当然希望以下的屏幕演示能够解释其余部分。