如果单元格值为0,excel vba切换在多张图纸上隐藏/取消隐藏范围行

如果单元格值为0,excel vba切换在多张图纸上隐藏/取消隐藏范围行,vba,excel,Vba,Excel,我想下面的工作跨页“总结”,“W1”,“W2”,“W3”,“W4”,“W5” 但是我面临一些问题,你能帮我一下吗 代码是在上面的工作表中隐藏空行,隐藏未使用的行。 上述所有表格中的上述范围相同。 该按钮用于切换隐藏/取消隐藏行 谢谢大家! 链接到我的文件: 这将循环范围内的所有行,检查值,并循环工作簿中的所有工作表 Private Sub CommandButton1_Click() Dim rng As Range Dim iRow as Range Dim wsh As Worksheet

我想下面的工作跨页“总结”,“W1”,“W2”,“W3”,“W4”,“W5” 但是我面临一些问题,你能帮我一下吗

代码是在上面的工作表中隐藏空行,隐藏未使用的行。 上述所有表格中的上述范围相同。 该按钮用于切换隐藏/取消隐藏行

谢谢大家!

链接到我的文件:


这将循环范围内的所有行,检查值,并循环工作簿中的所有工作表

Private Sub CommandButton1_Click()

Dim rng As Range
Dim iRow as Range
Dim wsh As Worksheet
Dim hidden_status As Boolean

If CommandButton1.Caption = "Less Rows" Then
   CommandButton1.Caption = "More Rows"
Else
   CommandButton1.Caption = "Less Rows"
End If

On Error Resume Next

For Each wsh in ThisWorkbook.Worksheets
   Set rng = wsh.Range("A8:A91,A96:A121") 
    For Each iRow in rng.Rows
        If iRow.Value = "" Then
           With iRow.EntireRow
                 hidden_status = .Hidden
                .Hidden = Not hidden_status
           End With
        End If
    Next iRow
Next wsh

On Error GoTo 0

End Sub

这将循环范围内的所有行,检查值,并循环工作簿中的所有工作表

Private Sub CommandButton1_Click()

Dim rng As Range
Dim iRow as Range
Dim wsh As Worksheet
Dim hidden_status As Boolean

If CommandButton1.Caption = "Less Rows" Then
   CommandButton1.Caption = "More Rows"
Else
   CommandButton1.Caption = "Less Rows"
End If

On Error Resume Next

For Each wsh in ThisWorkbook.Worksheets
   Set rng = wsh.Range("A8:A91,A96:A121") 
    For Each iRow in rng.Rows
        If iRow.Value = "" Then
           With iRow.EntireRow
                 hidden_status = .Hidden
                .Hidden = Not hidden_status
           End With
        End If
    Next iRow
Next wsh

On Error GoTo 0

End Sub


你只是在问如何在所有床单之间循环?上面的代码会给你一个错误吗?它做了你意想不到的事吗?你面临的问题是什么?它非常有效,但只在总结表上。我想使用一个按钮在我提到的所有工作表上执行相同的操作。但在所有其他的表单上,我都有一个公式,而Xlblanks不起作用。这就是为什么我需要代码表和单元格值(我想)。但是我还不知道怎么做。什么定义了一个未使用的行?如果行中的任何单元格中根本没有数据?或者它主要像,如果B列为空,这是一个“未使用的行”用于您的目的?工作表“摘要”空行是一个没有数据的行。在工作表W1-W5上,它将是一个返回“”的公式。请尝试检查单元格的值
xlBlanks
检查单元格的内容,它可以是一个公式(它不是空的)。您只是问如何在所有工作表之间循环?上面的代码会给你一个错误吗?它做了你意想不到的事吗?你面临的问题是什么?它非常有效,但只在总结表上。我想使用一个按钮在我提到的所有工作表上执行相同的操作。但在所有其他的表单上,我都有一个公式,而Xlblanks不起作用。这就是为什么我需要代码表和单元格值(我想)。但是我还不知道怎么做。什么定义了一个未使用的行?如果行中的任何单元格中根本没有数据?或者它主要像,如果B列为空,这是一个“未使用的行”用于您的目的?工作表“摘要”空行是一个没有数据的行。在工作表W1-W5上,它将是一个返回“”的公式。请尝试检查单元格的值
xlBlanks
检查单元格的内容,可以是公式(它不是空的)。谢谢@Masoud,它现在确实循环,但持续循环,不会停止哈哈。尽管如此,我还是很聪明。我猜这是因为“摘要”选项卡包含实际空格,而所有其他表格包含公式。@AnnaZet去掉错误行上的
以查看实际错误。试着一步一步地跑步(为此,在键盘上点击
F8
)。检查我将在一分钟内添加的部分(我留给您的部分)。它不可能永远运行。不管发生什么,它都会转到下一排。不过你需要耐心。它在726行上运行,并使用for循环而不是过滤技术。这需要一些时间。让我想办法上传工作簿。也许这会让事情变得更容易。我不想占用任何人的时间(太多,哈哈),我花了这么多时间在这段代码上,我现在使用的是迄今为止最好的。链接添加到我的第一篇文章中。非常感谢您的帮助。@AnnaZet无需上传您的文件。如果你考虑我对跑步的评论一步一步,你会发现发生了什么事。每个工作表的范围不会改变,它会保留在第一个活动工作表中,在您的案例中是“摘要”,因为您有按钮。现在就去看看吧。谢谢@Masoud,它现在确实在循环,但一直在循环,不会停止,哈哈。尽管如此,我还是很聪明。我猜这是因为“摘要”选项卡包含实际空格,而所有其他表格包含公式。@AnnaZet去掉错误行上的
以查看实际错误。试着一步一步地跑步(为此,在键盘上点击
F8
)。检查我将在一分钟内添加的部分(我留给您的部分)。它不可能永远运行。不管发生什么,它都会转到下一排。不过你需要耐心。它在726行上运行,并使用for循环而不是过滤技术。这需要一些时间。让我想办法上传工作簿。也许这会让事情变得更容易。我不想占用任何人的时间(太多,哈哈),我花了这么多时间在这段代码上,我现在使用的是迄今为止最好的。链接添加到我的第一篇文章中。非常感谢您的帮助。@AnnaZet无需上传您的文件。如果你考虑我对跑步的评论一步一步,你会发现发生了什么事。每个工作表的范围不会改变,它会保留在第一个活动工作表中,在您的案例中是“摘要”,因为您有按钮。现在就去看看。