您也可以使用命名范围,如果您的某些响应显示/隐藏多行,这意味着您不必对它们进行硬编码,您可以编辑命名范围。
为了使我的示例代码正常工作,您需要在与问题相同的行的第 3 列中写入命名范围的“名称”。
Public Enum HiddenState
Hidden = 0
Shown = 1
Toggle = 2
End Enum
Public Sub Toggle(ByVal Name As String, Optional ByVal State As HiddenState = HiddenState.Toggle)
Dim Row As Variant
For Each Row In Names(Name).RefersToRange.Rows
If State = Toggle Then
Row.Hidden = Not Row.Hidden
Else
If State = Shown Then Row.Hidden = False Else Row.Hidden = True
End If
Next
End Sub
Public Sub SetFeedback()
Dim Index As Integer
Dim RowCount As Integer
RowCount = 10 ' Change This
For Index = 1 To RowCount
If Sheets("Questions").Cells(2, Index) = "Y" Then
Toggle Sheets("Questions").Cells(3, Index), Hidden
Else
Toggle Sheets("Questions").Cells(3, Index), Shown
End If
Next Index
End Sub
您需要将此代码添加到新模块中,如果您要显式隐藏和取消隐藏行,则不需要 HiddenState 位。