繁体   English   中英

Excel,VBA,show(),hide()行

[英]Excel, VBA, show() hide() rows

我试图根据单元格的内容隐藏/显示一定范围的行。 使用下面的代码,但我不断收到#name错误

Function HURows(ByVal rng As Range)
    If rng.Value = "TRUE" Then
        Range("C8:L23").Hidden = True
        Str = "Hidden"
    Else
        Range("C8:L23").Hidden = False
        Str = "Shown"
    End If

    HURows = Str
End Function

此代码已放置在Sheet1(Sheet1)VBA代码的部分中,并在Sheet1 =HURows(C3)

您至少有两个问题:

  1. UDF只能返回一个值,而不能隐藏/取消隐藏行
  2. 隐藏应应用于整行,而不仅仅是单元格

    可能还有其他问题

正如Gary所说,该函数只能显示一个值,您将设置一个宏来隐藏和取消隐藏行。

我们可以使用工作表事件来使代码自动运行,但是您将不得不提供更多详细信息。 同时,这里有一些代码可以帮助您入门。

Sub HideRws()
    Dim HidRw As Range, x, s As String
    Dim rng As Range
    Set rng = Range("A1")
    Set HidRw = Range("C8:L23")
    HidRw.EntireRow.Hidden = False
    x = IIf(rng = "True", 1, 0)
    s = IIf(rng = "True", "Hidden", "Shown")

    HidRw.EntireRow.Hidden = x
    rng.Offset(0, 1) = s

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM