
怎么在excel中编写 多行条件隐藏的 宏啊
我想在excel中编写一个这样的宏,该宏满足:1、保证含有数据的每一行之间最多空出来一行,其他的都隐藏;2、在满足条件1的情况下,如果I列和K列中数据满足:至少一个非零,...
我想在 excel 中 编写一个这样的 宏,该宏满足:
1、保证含有数据的每一行之间最多空出来一行,其他的都隐藏;
2、在满足条件1的情况下,如果 I 列 和 K 列 中数据满足:至少一个非零,则显示(就是不隐藏)该数据所在的行;反之,则隐藏该行。
3、选定的范围为:A1 到 N10000 展开
1、保证含有数据的每一行之间最多空出来一行,其他的都隐藏;
2、在满足条件1的情况下,如果 I 列 和 K 列 中数据满足:至少一个非零,则显示(就是不隐藏)该数据所在的行;反之,则隐藏该行。
3、选定的范围为:A1 到 N10000 展开
1个回答
2013-12-19
展开全部
老四,以下代码可用,不过数据较多时可能效率不太高,希望能帮到你。
Sub Macro1()
Dim HideRow(10000) As Boolean
For a = 1 To 10000
If Application.WorksheetFunction.Count(Range("A" & CStr(a), "N" & CStr(a))) = 0 Then
If Application.WorksheetFunction.Count(Range("A" & CStr(a + 1), "N" & CStr(a + 1))) = 0 Then
Rows(CStr(a) & ":" & CStr(a)).Select
Selection.EntireRow.Hidden = True
HideRow(a) = True
End If
Else
If Range("I" & CStr(a)) = 0 And Range("K" & CStr(a)) = 0 Then
Rows(CStr(a) & ":" & CStr(a)).Select
Selection.EntireRow.Hidden = True
HideRow(a) = True
End If
End If
Next a
End Sub
Sub Macro1()
Dim HideRow(10000) As Boolean
For a = 1 To 10000
If Application.WorksheetFunction.Count(Range("A" & CStr(a), "N" & CStr(a))) = 0 Then
If Application.WorksheetFunction.Count(Range("A" & CStr(a + 1), "N" & CStr(a + 1))) = 0 Then
Rows(CStr(a) & ":" & CStr(a)).Select
Selection.EntireRow.Hidden = True
HideRow(a) = True
End If
Else
If Range("I" & CStr(a)) = 0 And Range("K" & CStr(a)) = 0 Then
Rows(CStr(a) & ":" & CStr(a)).Select
Selection.EntireRow.Hidden = True
HideRow(a) = True
End If
End If
Next a
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询