Excel 基于单元格值隐藏行

Excel 基于单元格值隐藏行,excel,vba,Excel,Vba,我想根据同一工作表中的两个值隐藏电子表格中的第四行 每当某一行的值为“CO”和“USD”时,我都会隐藏第四行。行位置将因所选参数而异。例如,该行可能归入第2000行或第675行 有人能帮忙吗?我是vba新手。学习vba时,我建议录制一个宏,然后查看宏的工作方式 下面是我录制宏并进行一些更改时的最终结果。我复制了宏,将代码隐藏在工作表的更改事件(selectionchange)上的行中。这将分别检查单元格B3和D3中的CO和USD值。如果B3和D3等于CO和USD,则隐藏第4行。值更改时,第4行将

我想根据同一工作表中的两个值隐藏电子表格中的第四行

每当某一行的值为“CO”和“USD”时,我都会隐藏第四行。行位置将因所选参数而异。例如,该行可能归入第2000行或第675行


有人能帮忙吗?我是vba新手。

学习vba时,我建议录制一个宏,然后查看宏的工作方式

下面是我录制宏并进行一些更改时的最终结果。我复制了宏,将代码隐藏在工作表的更改事件(selectionchange)上的行中。这将分别检查单元格B3和D3中的CO和USD值。如果B3和D3等于CO和USD,则隐藏第4行。值更改时,第4行将取消隐藏


由于我同意的一条评论,我添加了
应用程序。enable
events

好的,假设您不知道“CO”和“USD”在表中的位置,那么我们必须在使用xQbert的代码之前先找到它们

这就是为什么:

Private Sub Worksheet_Change(ByVal Target As Range)

' Lets find your values
Set oLookin1 = ThisWorkbook.Worksheets("Sheet1").UsedRange 'Sheet name here
sLookFor1 = "CO"
Set oFound1 = oLookin1.Find(What:=sLookFor1, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

Set oLookin2 = ThisWorkbook.Worksheets("Sheet1").UsedRange 'Sheet name here
sLookFor2 = "USD"
Set oFound2 = oLookin2.Find(What:=sLookFor2, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

If Not oFound1 Is Nothing And Not oFound2 Is Nothing Then 'make sure the values are found
If oFound1.Row = oFound2.Row Then 'make sure that "CO" & "UDC" are in the same row
Application.EnableEvents = False
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Sheet1").Rows("4:4").EntireRow.Hidden = True
Application.EnableEvents = True
Application.ScreenUpdating = True
Else
Application.EnableEvents = False
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Sheet1").Rows("4:4").EntireRow.Hidden = False
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
Else
Application.EnableEvents = False
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Sheet1").Rows("4:4").EntireRow.Hidden = False
Application.EnableEvents = True
Application.ScreenUpdating = True
End If

End Sub

这应该能奏效

是的,应该这样+1您可能想在那里输入
Application.EnableEvents=False
&然后
Application.EnableEvents=True
以防万一:)True我讨厌屏幕闪烁:DSo我确实尝试过这个,但CO和USD并不总是在第3行。我遇到的问题是使用正确的语法来调整非固定行。例如,CO和USD将始终位于同一行,但它们可能属于第2000行或第1行,243@xQbert与其说是屏幕闪烁(尽管可能发生),不如说是你的代码在一个永无止境的循环中触发自身的可能性。嗯,这似乎不起作用,我用“货币”代替了“Sheet1”哪张是我的床单using@user3746034当你说“似乎不起作用”时,你到底是什么意思。这里有一个到样本表的链接:它正在工作!因此,我创建了一个新工作簿,并使用“工作表1”作为工作表。例如,我在第9行中插入了“CO”和“USD”。我将您的代码转储到一个新模块中并运行宏。第4行仍在显示。什么意思?将代码转储到新模块并运行宏?该代码应添加在插入“CO”和“USD”的表格代码中。你试过下载我评论中链接中的样本表吗?我试过了,你的权利是我使用一个模块插入你发布的代码;但是,我返回并将代码转移到我正在使用的工作表“货币”中。电子表格开始闪烁约20秒,但仍然没有隐藏第4行。有什么建议吗?