好的,所以我有hita砖墙,它对我来说是一面大墙,但是对我们来说是一个小墙我打赌,所以我在寻求帮助。
我有一个电子表格,我在不同的行上使用110个问题,我要求在下一栏中回答员工和现有员工回答Y或N,然后使用它来强调各个方面的弱点或开发区域,所以我可以为他们建立一个职业和培训的道路。然后,在第二个选项卡上,使用公式,来自TAB 1的Y和N用于填充图表,其中包含红色和绿色,这通常表明员工在技术上是否强大,并且需要运用他们的软技能或反之亦然。
我需要你对TAB 3的帮助.Tab 3将有一个“建议读数”的列表和训练,以补救他们可能在TAB 1上回答的N.
TAB 1称为QUESTIONS
TAB 2称为CHART
TAB 3称为FEEDBACK
所以,在TAB 3上,在CELL B9中,我的白痴思维方式说...... IF QUESTIONS, C9 = "Y" THEN HIDE FEEDBACK B9
。
答案 0 :(得分:1)
那么你要求逻辑或VBA字符串吗?
因为你的逻辑没问题,对于VBA来说,它可能就像
Sub HideRows()
For i = 1 to RowCount 'Change RowCount to however many rows there are in Questions & Feedback
If Sheets("Questions").Range("B"& i) = "Y" Then
Sheets("Feedback").Rows(i).Hidden = True
End If
Next i
End Sub
..如果我理解正确的话
答案 1 :(得分:0)
您还可以使用命名范围,如果您的某些响应显示/隐藏多行,则表示您不必对其进行硬编码,您可以编辑命名范围。
要使我的示例代码起作用,您需要在与问题相同的行的第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位。