:ワークシートを非表示にしている場合
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim HideIt As Boolean
HideIt = True
For Each cell In Range("$A$30:$A$38")
If cell.Value = "Descriptor 1" Or _
cell.Value = "Descriptor 2" Then
HideIt = False
Exit For
End If
Next Cell
If HideIt Then
Columns("B:F").Hidden = True
Worksheets("Sheet1").Visible = xlSheetHidden
Worksheets("Sheet2").Visible = xlSheetHidden
Else
Columns("B:F").Hidden = False
Worksheets("Sheet1").Visible = xlSheetVisible
Worksheets("Sheet2").Visible = xlSheetVisible
End If
End Sub
は/自分のシート名があなたの範囲内に表示されるかどうかに応じて見えるように、私は次のような変形を示唆しています素晴らしいです。しかし、私は短い形式のタブ名と完全な形式の私の記述子に問題がありました。だから、元のコードを取り出し、各タブの "HideTab"を追加し、HideTab = Falseをtoplineに変更して、4行目のHideTab(下記参照)で逆にしました。私はより速い方法があると確信していますが、これは魅力のように機能しました。ご助力ありがとうございます!あなたは正しい方向に私を指差した。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim HideIt As Boolean
HideIt = True
For Each cell In Range("$A$30:$A$38")
If cell.Value = "Descriptor 1" Or
cell.Value = "Descriptor 2" Then
HideIt = False
Exit For
End If
Next Cell
Columns("B:F").EntireColumn.Hidden = True
Dim HideTab1 As Boolean
HideTab1 = False
For Each cell In Range("$A$30:$A$38")
If cell = "Descriptor1" Then
HideTab1 = True
Exit For
End If
Next cell
Sheets("Desc1").Visible = HideTab1
Dim HideTab2 As Boolean
HideTab2 = False
For Each cell In Range("$A$30:$A$38")
If cell = "Descriptor2" Then
HideTab2 = True
Exit For
End If
Next cell
Sheets("Desc2").Visible = HideTab2
Dim HideTab3 As Boolean
HideTab3 = False
For Each cell In Range("$A$30:$A$38")
If cell = "Descriptor3" Then
HideTab3 = True
Exit For
End If
Next cell
Sheets("Desc3").Visible = HideTab3
End Sub
お返事ありがとうございました!私はそれにショットを与え、あなたがそれがどのように動作するかを教えてあげよう! –
だから私はそれを行った。それは私が望んでいたようには機能しませんでした。問題は私の説明です。私はそれぞれ9枚の独立したドロップダウンボックスのデータ検証リストに対応する名前の22枚を持っています。私は、記述子1と記述子2に基づいて列を隠すだけでなく、コードから独立して22の記述子のシートを非表示/非表示にして、9つのドロップダウンの独立した選択に基づいて列を非表示にする必要があります。独立したシート名がドロップダウンにない場合は、独立したシートを隠す必要があります。 –
@il_Paco A30:A38が「Descriptor 1」または「Descriptor 2」のいずれかである場合、アクティブシートに列を表示したいと思います。また、アクティブなシートのA30:A38セルに名前が表示されないワークシート(アクティブシート以外)を非表示にするか、シートの名前がそのセルに表示されている場合はシートを表示させますか? – YowE3K