Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用工作表宏隐藏错误行_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba 使用工作表宏隐藏错误行

Vba 使用工作表宏隐藏错误行,vba,excel,excel-2010,Vba,Excel,Excel 2010,我试图隐藏错误的行 目前我有 Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Range("B10:B13") = False Then Target.EntireRow.Hidden = True End If End Sub 尝试迭代范围中的每个单元格,并像下面这样测试其值 Private Sub Worksheet_Change(ByVal Target As Excel.Range

我试图隐藏错误的行

目前我有

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Range("B10:B13") = False Then
        Target.EntireRow.Hidden = True
    End If
End Sub

尝试迭代范围中的每个单元格,并像下面这样测试其值

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim c As Range
    For Each c In Range("B9:B13")
        If Not c.Value Then
            c.EntireRow.Hidden = True
        End If
    Next c
End Sub
编辑:我认为另一种实现你想要的结果的方法是从图表中删除该系列

Dim n As Long
With ChartObjects(1).Chart
   For n = .SeriesCollection.Count To 1 Step -1
      With .SeriesCollection(n)
          If .Name = "" Then
              .Delete
          End If
      End With
   Next n
End With

尝试迭代范围中的每个单元格,并像下面这样测试其值

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim c As Range
    For Each c In Range("B9:B13")
        If Not c.Value Then
            c.EntireRow.Hidden = True
        End If
    Next c
End Sub
编辑:我认为另一种实现你想要的结果的方法是从图表中删除该系列

Dim n As Long
With ChartObjects(1).Chart
   For n = .SeriesCollection.Count To 1 Step -1
      With .SeriesCollection(n)
          If .Name = "" Then
              .Delete
          End If
      End With
   Next n
End With


当您运行该代码时会发生什么?当值从True变为False时,它不应该自动切换吗?如果我尝试对工作表进行编辑,大部分是运行时错误。您不是在查找字符串“False”,而是在查找
False
条件。如果您确实查找字符串,您将在下面的答案中看到解决方案。当您运行该代码时会发生什么情况?当值从True更改为False时,它是否应该自动切换?如果我尝试编辑工作表,大多数情况下都是运行时错误。您不是在查找字符串“False”,而是在查找
False
条件。如果您确实查找字符串,您将在下面的答案中看到解决方案。我是否可以添加Else C.EntireRow.Hidden=False(假设我希望它可见),当我将其更改为True时,为什么我必须单击True False下方才能更改它?@MichaelDowney re。添加
else…
如果需要它们重新显示,则选择“是”。重新。在下面单击是因为只有当您离开单元格并确认输入时,工作表才发生了更改。你可以试试,谢谢!嗯,你不会有更简单的方法来删除空白的传说密钥,你呢?因为这就是一开始隐藏行的原因。如果我想让它可见,我会添加Else C.EntireRow.hidden=False吗?当我将它更改为True时,为什么我必须单击True-False下的才能更改它?@MichaelDowney re。添加
else…
如果需要它们重新显示,则选择“是”。重新。在下面单击是因为只有当您离开单元格并确认输入时,工作表才发生了更改。你可以试试,谢谢!嗯,你不会有更简单的方法来删除空白的传说密钥,你呢?因为这就是最初隐藏行的原因。
Rows(i).EntireRow.hidden=True
也是允许的。和
行(i).Hidden=True
范围(“B”&i).EntireRow.Hidden=True
。但是我喜欢你对+1的回答。哇,太棒了。谢谢大家!<代码>行(i).EntireRow.Hidden=True也是允许的。和
行(i).Hidden=True
范围(“B”&i).EntireRow.Hidden=True
。但是我喜欢你对+1的回答。哇,太棒了。非常感谢。