我目前正在建立一個excel作業簿,我希望能夠根據資料驗證來隱藏單元格。我的代碼已經可以正常作業了。
Private Sub Worksheet_Change(ByVal Target As Range)
激活ActiveSheet.Activate
If Not Application.Intersect(Range("C2"), Range(Target.Address) 是 無 那么 無 那么 無
Select Case Target.Value
Case Is = "A"/span>: Rows("18:41").EntireRow.Hidden = True.
Rows("6:17").EntireRow.Hidden = False。
Case Is = "B"/span>: Rows("6:29").EntireRow.Hidden = False.
Rows("30:41").EntireRow.Hidden = True。
Case Is = "C"/span>: Rows("6:41").EntireRow.Hidden = False.
End Select[/span].
End If
End Sub
我的問題是,這可以重復8次的可能性(正在進行類似的資料驗證)。但是每次的目標地址都會改變,需要隱藏的行也會改變。IE第二輪的目標地址單元格將是 "C42",而需要隱藏的行將會改變它們的隱藏與否,將是第46:81行。
我的初步計劃是創建8個單獨的If陳述句,每個陳述句都專門用于相關的組。我想知道是否有一種更干凈的方法來重復這個相同的程序。
uj5u.com熱心網友回復:
你可以通過在一個陣列中存盤值A、B、C等來實作。你也應該在一個陣列中存盤相應的范圍地址。然后,這只是一個回圈的問題,以弄清哪個字母被匹配。
代碼看起來就像:
fori = 1 to letters.length
if target.value = letters(i) then
Rows(address(i)).EntireRow.Hidden = True退出 為
End if
下一步
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/323597.html
標籤:
下一篇:使用Python的正則運算式
