Excel 基于其他图纸上的单元格值隐藏行(包括循环)

Excel 基于其他图纸上的单元格值隐藏行(包括循环),excel,vba,Excel,Vba,我试图根据输入工作表中的单元格值隐藏/取消隐藏输出工作表中的行。这本身并不是最困难的部分,但我在循环中遇到了麻烦,因为我需要根据300个单元格值分别隐藏300行 例如,如果输入表中的单元格B6包含编号,我想在输出表中隐藏第12行。如果输入表中的单元格B7包含编号,我想在输出表中隐藏第13行。。。一直到第306排和B300排 到目前为止,我已经编写了以下代码,但它似乎不起作用。非常感谢您的帮助 Sub HideRow() Dim i As Integer, j As Integer For i

我试图根据输入工作表中的单元格值隐藏/取消隐藏输出工作表中的行。这本身并不是最困难的部分,但我在循环中遇到了麻烦,因为我需要根据300个单元格值分别隐藏300行

例如,如果输入表中的单元格B6包含编号,我想在输出表中隐藏第12行。如果输入表中的单元格B7包含编号,我想在输出表中隐藏第13行。。。一直到第306排和B300排

到目前为止,我已经编写了以下代码,但它似乎不起作用。非常感谢您的帮助

Sub HideRow()

Dim i As Integer, j As Integer

For i = Sheets("Input").Range("B6") To Sheets("Input").Range("B300")
    For j = Sheets("Output").Rows("12") To Sheets("Output").Rows("306")

        If Sheets("Input").Range("i").Value = "No" Then
            Sheets("Output").Rows("j").EntireRow.Hidden = True
        Else
            Sheets("Output").Rows("j").EntireRow.Hidden = False

        Next j

    Next i

End Sub



您需要指定一个可能找不到值的列

例如:

Sub HideRows()
    Dim i As Long
    For i = 6 To 300
        Sheets("Output").Rows(i + 6).EntireRow.Hidden = _
               (Sheets("Input").Cells(i, "A").Value = "No") 'for example using ColA
    Next i
End Sub

对于i=SheetsInput.RangeB6到SheetsInput.RangeB300应替换为对于i=6到300。下一次迭代也是如此。然后,如果条件为真,代码将隐藏所有输出工作表行。。。您能更好地解释输出表中的行必须隐藏在哪些条件下吗?范围i das对VBA没有任何意义。请用文字说明你想完成什么。如果第一张工作表中的条件为真,是否需要隐藏另一张工作表的同一行?^除非您只需要一个循环,而不是两个。谢谢您的快速回复!如果输入表中的单元格B6等于否,则必须隐藏输出表中的第12行。输入中的B7也是如此,如果它等于No,那么输出中的第13行应该被隐藏。一直重复到输入中的B300和输出中的第306行。希望澄清一点!我的错,解释得不够好!但我已经指定了一个列,其中No应该是,在输出表中B6直到B300。所以基于输出表中B6直到B300,如果该值为否,则输出表中的第12-306行应该隐藏。希望澄清一点!这确实有效,正是我所需要的!非常感谢你!