2017-05-02 64 views
0

我想基於在下拉框中選擇的內容在工作表上顯示隱藏行。這些值在第2列中,並且是名稱。在所有隱藏行下方的單元格(C9)中有一個下拉列表,您可以選擇一個名稱,並且我希望包含名稱的行出現。如何根據單元格中的下拉列表按列中的值取消隱藏Excel中的行

到目前爲止,我有一個宏代碼,可以取消隱藏行指定同一個名字:

Sub Mike() 
    BeginRow = 1 
    EndRow = 6 
    ChkCol = 2 

    For RowCnt = BeginRow To EndRow 
     If Cells(RowCnt, ChkCol).Value = "Mike" Then 
      Cells(RowCnt, ChkCol).EntireRow.Hidden = False 
     End If 
    Next RowCnt 
End Sub 

然後,我可以做一個宏在每個單獨的宏調用,如果在下拉單元格的值是一個名字。然而,名稱列表將會改變,所以我需要一個獨立於名稱的宏。我試圖替換代碼,以便C9單元格中的值保持不變,但儘管宏運行沒有任何錯誤,但它也不會執行任何操作。

Sub ShowRows() 
    BeginRow = 1 
    EndRow = 6 
    ChkCol = 2 

    For RowCnt = BeginRow To EndRow 
     If Cells(RowCnt, ChkCol).Value = C9 Then 
      Cells(RowCnt, ChkCol).EntireRow.Hidden = False 
     End If 
    Next RowCnt 
End Sub 
+0

'如果Ce的lls(RowCnt,ChkCol).Value = Range(「C9」)。Value Then'您的語法關閉。如果你打開Option Explicit,它會標記一個錯誤。 – SJR

回答

0

C9對VBA沒有這種意義。它假定它是一個空變量。 你需要的是被稱爲「C9」的細胞:

Range("C9") 

你從該單元格(不是,例如,背景或邊框顏色)需要的價值:

Range("C9").Value 

所以嘗試:

If Cells(RowCnt, ChkCol).Value = Range("C9").Value Then 
0
Sub Mike() 
BeginRow = 1 
EndRow = 6 
ChkCol = 2 

For RowCnt = BeginRow To EndRow 
    If Cells(RowCnt, ChkCol).Value = Range("C9").Value Then 
     Cells(RowCnt, ChkCol).EntireRow.Hidden = False 
    End If 
Next RowCnt 

結束子

相關問題