我有一份报告,其中我要求用户点击按钮以显示他们需要添加评论的位置。我有它工作,但想要在他们已经扩展行的情况下输入If语句。
我有两个宏,第一个涉及他们按下的按钮,并向主宏发送按钮的名称和行号,该行号是展开或折叠的部分的一部分
Sub ROccupancy()
'
Dim RecName As String
RecName = "ROccupancy"
Dim RowNum As Integer
RowNum = 27
Call ToogleRec(RecName, RowNum)
End Sub
下一个宏是我遇到麻烦的地方
Sub ToogleRec(RecName, RowNum)
'
Dim Toogle As String
Dim MyObj As Object
Set MyObj = ActiveSheet.Shapes.Range(Array(RecName))
Toogle = Left(MyObj.TextFrame2.TextRange.Characters.Text, 4)
TextName = Mid(MyObj.TextFrame2.TextRange.Characters.Text, 5, 100)
If Toogle = "Show" Then
MyObj.ShapeStyle = msoShapeStylePreset9
MyObj.TextFrame2.TextRange.Characters.Text = _
"Hide" & TextName
MsgBox Rows(RowNum).ShowDetail
If Rows(RowNum).ShowDetail = False Then
Rows(RowNum).ShowDetail = True
End If
Else
MyObj.ShapeStyle = msoShapeStylePreset11
MyObj.TextFrame2.TextRange.Characters.Text = _
"Show" & TextName
MsgBox Rows(RowNum).ShowDetail
If Rows(RowNum).ShowDetail = True Then
Rows(RowNum).ShowDetail = False
End If
End If
Range("C" & RowNum).Select
End Sub
问题是Rows(RowNum).ShowDetail始终为TRUE,无论它是展开还是折叠。我可以删除If部分并使用“Rows(RowNum).ShowDetail = False”或“Rows(RowNum).ShowDetail = TRUE”将其设置为TRUE或FALSE。但是,如果用户手动展开或折叠了行,则会导致错误(这会使它们变得异常)
这个问题和答案似乎promising但行(RowNum).ShowDetail似乎总是真的
我把MsgBox放在那里进行错误检查。我将在最终版本中删除它。