簡體   English   中英

Excel VBA代碼在要隱藏的范圍內添加新行時更新隱藏/取消隱藏行功能

[英]Excel VBA code to update the hide/unhide rows functions when a new row is added within the range wanted to be hidden

我目前有一個代碼,當單擊activeX復選框時可以隱藏一定范圍的單元格:

版本1:

Private Sub CheckBox1_Click()

    If CheckBox1.Value = True Then

    Rows("14:30").Hidden = False

    Else

    Rows("14:30").Hidden = True

    End If

End Sub

Private Sub CheckBox2_Click()

    If CheckBox2.Value = True Then

    Rows("32:38").Hidden = False

    Else

    Rows("32:38").Hidden = True

    End If

End Sub

Private Sub CheckBox3_Click()

    If CheckBox3.Value = True Then

    Rows("40:54").Hidden = False

    Else

    Rows("40:54").Hidden = True

    End If

End Sub

版本2:

Private Sub CheckBox1_Click()

    [14:30].EntireRow.Hidden = Not CheckBox1

End Sub

Private Sub CheckBox2_Click()

    [32:38].EntireRow.Hidden = Not CheckBox2

End Sub

Private Sub CheckBox3_Click()

    [40:54].EntireRow.Hidden = Not CheckBox3

End Sub

問題:

兩種版本都能正常工作,但問題是,當在指定范圍內添加新行時,行規范顯然不會更新,因為它們不是變量。

注意 :有超過3個ActiveX復選框。 我大約19歲。

我知道范圍需要輸入整數或變量,但我只是VBA的新手,甚至都不是程序員(4年前在大學里研究了一些編程應用程序,因此可以讀一些代碼),所以我不知道該怎么做去做吧。 目前正在致力於在工作中自動執行excel文件,並且會喜歡您的幫助! 我已經為此奮斗了幾天:(

Excel文件如下所示:

剪輯1

剪輯2

先感謝您!!

您需要動態確定每個部分的開始行和結束行。 這應該適用於頂部A-常規部分。

Option Explicit

Private Sub CheckBox1_Click()

    Dim m1 As Variant, m2 As Variant

    m1 = Application.Match("A -*", Columns(1), 0)
    m2 = Application.Match("B -*", Columns(1), 0)

    If IsError(m1) Or IsError(m2) Then Exit Sub

    With Range(Cells(m1 + 1, "A"), Cells(m2 - 1, "A"))
        .EntireRow.Hidden = Not CheckBox1.Value
    End With

End Sub

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM