【问题标题】:Unhide/Hide rows in excel with a form checkbox使用表单复选框取消隐藏/隐藏excel中的行
【发布时间】:2019-04-06 03:20:18
【问题描述】:

我在 excel 中创建了一个表单,其中隐藏了 [10:48] 行,我想制作这样,当您单击复选框时,行 [10:48] 不会隐藏。我为复选框分配了一个宏并使用以下公式:

Private Sub CheckBox45_Click()

  If CheckBox45 = True Then

  [10:48].EntireRow.Hidden = False

  Else: [10:48].EntireRow.Hidden = True

End If

End Sub

当我单击复选框时,没有任何反应,但是当我取消隐藏行并单击复选框时,它会隐藏行。这让我认为只有其中一项行动有效。有没有办法来解决这个问题?

提前感谢您的帮助。

不知道这是否重要,但表单复选框位于 D 列第 6 行

【问题讨论】:

    标签: excel vba checkbox


    【解决方案1】:

    这是另一种方法。

    语句ws.CheckBoxes("Check Box 30") = 1 将返回TRUEFALSE,这将隐藏或取消隐藏您的目标行。

    Private Sub CheckBox30_Click()
    
        Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
        ws.Range("A10:A48").EntireRow.Hidden = ws.CheckBoxes("Check Box 30") = 1
    
    End Sub
    

    【讨论】:

    • 您好,感谢您的帮助。使用此代码,我得到了与此行中所需对象相同的错误::Set ws = Portfolio.Sheets("Sheet1")。有什么想法吗?
    • 请将第二行的工作表名称(Sheet1)更新为实际工作表名称,然后按原样运行代码。
    【解决方案2】:

    这假设您正在隐藏/取消隐藏工作表 1 上的行,并且复选框属于工作簿的工作表 1,那么:

    Private Sub CheckBox30_Click()  
        If ThisWorkbook.Sheets(1).CheckBoxes("Check Box 30").Value = 1 Then
            ThisWorkbook.Sheets(1).Rows("10:48").Hidden = true 
        Else
            ThisWorkbook.Sheets(1).Rows("10:48").Hidden = false
        End If
    End Sub
    

    【讨论】:

    • 我在工作表 1 中尝试过,但现在它给了我一个错误,它无法运行宏“Portfolio.xlsm!No”。宏可能不可用(...)。我将句子更正为“Portfolio.Sheet(1).Rows("10:48").Hidden = No.Value”。是不是我做错了什么? excel 的所有内容都启用了宏,我还有其他可以运行的宏。
    • 由于某种原因,这仍然无法正常工作。我相信此时它更多的是命名错误而不是公式错误,所以我会给你所有我必须看到的信息,看看它是否可以修复。 Private Sub No_Click() Portfolio.Sheet(1).Rows("10:48").Hidden = Portfolio.Sheet(1).CheckBoxes("No").Value End Sub 这就是我正在使用的。工作簿名称是 Portfolio,复选框文本状态为“否”,有没有办法可以检查它是哪个复选框编号并使用它?
    • @Josh 您需要获取复选框对象的名称。如果您右键单击复选框,您将在左上角的框中看到它的名称(就在公式栏的左侧)。通常默认情况下它被命名为“复选框 1”。那个名字就是...CheckBoxes("Check Box 1")....
    • 我在 Check Box 30 中找到了它的名称,所以我在公式中更改了名称,但它仍然给我同样的错误。但是其他宏仍在工作。有什么想法吗?
    • @Josh 我有一些拼写错误,我发现复选框实际上似乎并没有返回真/假值,而是 1 代表真,-4146 代表假。我的答案已被修改
    猜你喜欢
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多