我有“sheet2”,其中的数据取决于“sheet1”中输入的内容。填充的数据是“N/A”或特定语句。
在 sheet2 中,我希望 G 列中任何带有“N/A”的行都自动隐藏,如果 sheet1 中的数据发生变化导致“N/A”发生变化,则这些行将取消隐藏。
我知道 VBA 可能是我的答案,但我没有使用这些知识/经验。
答案1
因为您希望 Excel 在指定列包含 #NA 错误/值时自动隐藏和取消隐藏行/列。因此在这种情况下,VBA(宏)是最佳且方便的解决方案。
在工作表 2 中输入此代码作为标准模块。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range
Dim cl As Range
Application.ScreenUpdating = False
Set rng = [H2:H25]
For Each cl In rng
If IsError(cl) Then
cl.EntireColumn.Hidden = cl = CVErr(xlErrNA)
Else
cl.EntireColumn.Hidden = cl = ""
End If
Next
Application.ScreenUpdating = True
End Sub
笔记:
- 根据需要调整代码中的单元格引用。
- 我的建议是不要隐藏/取消隐藏行,而是仅处理公式列。
- 要隐藏行,
cl.EntireColumn.Hidden
请用替换cl.EntireRow.Hidden
。
答案2
试试这个..输入公式..
H1 --> =IF(G1="N/A",0,1)
H2 --> =IF(G2="N/A",H1,H1+1)
J1 --> =IFERROR(INDEX(G:G,MATCH(I1,H:H,0)),"")
将 H2 + J1 向下拖动。一些运行数字。
I1 --> 1
I2 --> 2
I3 --> 3
I4 --> 4 and so on..
希望 J 栏就是你要找的。。(: