我有一個包含5個工作表的工作簿:Sheet1,Sheet2,Sheet3,Sheet4,Sheet5。第一張:「Sheet」有一個單元:「C3」,帶有一個下拉菜單,有4個不同的選項:Opt1,Opt2,Opt3,Opt4。 根據在此下拉菜單中選擇的內容,我希望實時將不同的列隱藏在各種工作表中。如果沒有輸入,我不想隱藏任何列。Excel VBA根據另一個工作表中的不同單元格值實時隱藏不同的列
我已經輸入了部分工作的下面的代碼,但我認爲存在一個問題,因爲我選擇了重疊的列來隱藏 - 不完全確定。
此外,我想隱藏特定的行以及下面的列,具體取決於您在下拉菜單中選擇的不同選項。
此外,我將複製在所有Sheets1-5中隱藏相同的列。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Value = "Opt1" Then
Sheets("Sheet1").Columns("G:L").EntireColumn.Hidden = True
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("G:L").EntireColumn.Hidden = False
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt2" Then
Sheets("Sheet1").Columns("B:F").EntireColumn.Hidden = True
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:F").EntireColumn.Hidden = False
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt3" Then
Sheets("Sheet1").Columns("B:M").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:M").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt4" Then
Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = False
End If
End Sub
你就可以開始將在範圍內的所有列在子(表( 「工作表Sheet1」)開始被取消隱藏列( 「B:AB」)EntireColumn.Hidden。 = False),然後在你的代碼中只添加if(而不是其他)部分?這意味着只有針對測試條件的指定列將被隱藏。 – QHarr