你也可以使用命名范围,如果你的一些响应显示/隐藏多行,这意味着您不必对它们进行硬编码,您可以编辑命名范围。
对于我的示例代码工作,您需要在与问题相同的行的第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位。
感谢您的回复!我在VBA真的很糟糕,实际上它吓坏了我!哪里会添加这个?我会打开反馈选项卡,然后开发人员,我使用2010年。 –
为添加代码和excel工作簿:http://www.contextures.com/xlvba01.html – MarioTheHedgehog