【问题标题】:Hide/Unhide cells with empty rows on Worksheet_Change在 Worksheet_Change 上隐藏/取消隐藏具有空行的单元格
【发布时间】:2015-09-12 19:21:04
【问题描述】:

我有两列数据通过每个单元格中的公式从工作簿其他地方的其他工作表上的数据中提取到工作表中...

第一列,即 A 列,有“是”、“否”或从通过另一个工作表中的公式拉入的数据中为空白。

第二列 B 列也有从其他地方提取的数据,但每一行都有数据。

我希望做的是隐藏 A 列中没有任何内容的所有行。A 列中包含数据的任何行都应该是可见的。当输入出现在 A 列中的数据时,我希望通过使用 VBA 的 worksheet_change 事件来更新它。

如果您能提供帮助,非常感谢。

【问题讨论】:

  • 请告诉我们您尝试了什么?如果您还没有尝试过任何事情,This 会让您入门。将您尝试过的代码发回,我们将从那里获取它....
  • 我什么都没试过。我使用 worksheet_change 函数在单元格更新时创建时间戳,但除此之外,什么都没有。
  • 我已经在下面添加了我自己的回复...

标签: excel vba


【解决方案1】:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Intersect(Target, Me.Range("A:A")) Is Nothing Then Exit Sub
        Application.EnableEvents = False
dim lrow as Integer
dim i as Integer
     lrow = Cells(1, 2).End(xlDown).Row
    For i = 1 To lrow
    If Cells(i, 1) = 0 Then
    Rows(i).Select
    Selection.EntireRow.Hidden = True
    End If
    Next
        Application.EnableEvents = True
    End Sub

您必须将其插入工作表的代码中。右键单击工作表名称并按查看代码并将其另存为宏启用。 当 a 列发生更改时,它会被激活。

【讨论】:

  • 这里有两个问题...对A列进行了更改,B中的每一行都已经有数据。并且由于数据是从其他地方提取的,因此每个单元格中都有一个公式。通过“隐藏 A 列中没有任何内容的任何行”,我的意思是任何不大于 0 的数值的结果。如果没有返回任何内容,公式将返回 0。
  • 您在 NP 中写了是、否或空白。更正了您的评论,立即尝试。
猜你喜欢
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 2021-02-18
  • 2017-12-11
  • 2018-02-22
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
相关资源
最近更新 更多