【问题标题】:Excel Hiding Rows with VBAExcel 使用 VBA 隐藏行
【发布时间】:2012-12-16 10:53:29
【问题描述】:

好的,所以我有一堵砖墙,对我来说它是一堵大墙,但我打赌对你们来说是一堵小墙,所以我正在寻求帮助。

我有一个电子表格,在不同的行上有 110 个问题,我要求潜在员工和现有员工在下一列中回答 Y 或 N,然后我用它来突出各个领域的弱点或发展领域,所以我可以为他们建立职业和培训道路。然后,在第 2 个选项卡上,使用公式,使用 TAB 1 中的 Y 和 N 填写图表,用红色和绿色填充,这通常表明员工是否技术强,是否需要发挥软技能,反之亦然.
我需要您对 TAB 3 的帮助。Tab 3 将列出“建议阅读”和培训,以纠正他们可能在 TAB 1 上回答的 N。 选项卡 1 称为问题 选项卡 2 称为图表 TAB 3 称为反馈

所以,在 TAB 3 中,在 CELL B9 中,我愚蠢的想法是……IF QUESTIONS, C9 = "Y" THEN HIDE FEEDBACK B9

【问题讨论】:

    标签: excel vba show-hide


    【解决方案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
    

    ..如果我理解正确的话

    【讨论】:

    • 感谢您的回复!我真的很讨厌 VBA,事实上它吓坏了我!在哪里添加这个?我会打开 FEEDBACK 选项卡,然后是开发人员,我使用的是 2010。
    【解决方案2】:

    您也可以使用命名范围,如果您的某些响应显示/隐藏多行,这意味着您不必对它们进行硬编码,您可以编辑命名范围。

    要使我的示例代码正常工作,您需要在问题所在行的第 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 位。

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多