根據下拉清單隱藏和取消隱藏行

根據下拉清單隱藏和取消隱藏行

我有一個單元格 (D3),其下拉式選單包含 8 個項目(所有單字)。根據所選的下拉項目,我想隱藏 K 列中沒有該特定單字的所有其他行(從開始起 11 列)。

我還需要一個選項來顯示所有行(如果從下拉式選單中選擇“所有行”)。

關於與下拉式選單單元格值相關的 VBA 有什麼想法嗎?

另外,當選擇下拉式選單時,如何將 VBA 程式碼與下拉式選單相關聯?

謝謝你,我很感激任何幫助。

這段程式碼看起來正確嗎?子階段TargettoStart()

Dim rMyCell As Range Set rMyCell = Range("D3") BeginRow = 6 EndRow = 301 ChkCol = 10 If Range("Audit!D3") = "Source Selection" then Rows("6:301").EntireRow.Hidden =錯誤的

Else
If Range("Audit!D3") = "Source Selection + 4 weeks" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "Step 5 + 8 weeks" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "TKO" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "OTOP" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "VP" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "Process Audit" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "PDR" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "PS" Then
Rows("6:301").EntireRow.Hidden = False

Else
If Range("Audit!D3") = "Show All" Then
Rows("6:301").EntireRow.Hidden = True

End If

End Sub

答案1

設定下拉式選單格式時,您可以指定一個儲存格來儲存選單中所選項目目的結果。

這稱為“單元連結”,它將始終包含一個數位等於使用者選擇在下拉式選單清單中的位置。

您可以使用 INDEX() 來取得選單項目的實際值(從選單項目清單中),並且本教學頁面示範如何使用 VBA 隱藏/取消隱藏行。

我將幫助您開始此操作,但此網站不是“為我編寫程式碼的網站”。您必須投入時間來學習如何使用 VBA 進行編碼。

首先,您必須正確設定下拉清單。在下圖中,我使用下拉式清單(也稱為組合方塊)設定了一些與您類似的資料。

在此輸入影像描述

在這裡,我格式化了控制項並將輸入範圍(清單項目)定義為 A2:A8,將儲存格連結定義為 B2。當我從下拉清單中選擇「顯示全部」時,儲存格 B2 顯示 7,因為「顯示全部」是清單中的第 7 項。

現在,您的任務是建立一個類似的下拉清單並將此巨集指派給它:

Sub ShowHideRows()
'Set up variables
Dim ResultText As String
        
'Initialize variables
'If choice is "Show All", set ResultText to ABCD, a value that won't be found
'Otherwise, get the text from the list
If Range("B2") = 7 Then
    ResultText = "ABCD"
Else
    ResultText = Application.WorksheetFunction.Index(Range("A2:A7"), Range("B2"))
End If

MsgBox (ResultText)
        
End Sub

如果您正確執行了所有操作,那麼每當您從清單中選擇一個項目時,您都應該看到一條訊息,顯示您選擇的清單項目。

如果您必須了解有關如何編寫和調試 VBA 或如何將 VBA 模組分配給控制項的更多信息,請使用 Internet 並研究如何執行這些操作。

如果您遇到問題,請在此提問。

相關內容