2017-06-07 13 views
1

ユーザーが最大10個のデータタブを使用できるようにするユーザーインターフェイスを作成しています。ほとんどの場合、ユーザーはタブを少なくします(3と言うことができます)。私は10個のタブの[P2:P11]の範囲内の値で動作するコードに興味があります。データタブが使用中の場合、ボックスは "True"を返しますが、タブが使用されていない場合は、 "False"の値を返します。VBA |セル値に基づいてアクティブシートの数を減らす

1、2、3のみを使用している場合は、他のデータタブ(4-10)を見る負担がないようにしたいと思います。(データタブは実際1,2,3などとラベル付けされています便利です)。このマクロは、プログラムがユーザーに送信されたときに非表示になる「HIDE_ME」というページで動作するようになっています。以下のイベントのコードを作成しましたが、動作させることはできません。誰かが私の誤りを見つけるのを助けることができますか?どうもありがとう。

Sub Worksheet_Change(ByVal Target As Range) 
If [P2] = "True" Then 
Sheets("1").Visible = True 
Else 
Sheets("1").Visible = False 
End If 

If [P3] = "True" Then 
Sheets("2").Visible = True 
Else 
Sheets("2").Visible = False 
End If 

If [P4] = "True" Then 
Sheets("3").Visible = True 
Else 
Sheets("3").Visible = False 
End If 

If [P5] = "True" Then 
Sheets("4").Visible = True 
Else 
Sheets("4").Visible = False 
End If 

If [P6] = "True" Then 
Sheets("5").Visible = True 
Else 
Sheets("5").Visible = False 
End If 

If [P7] = "True" Then 
Sheets("6").Visible = True 
Else 
Sheets("6").Visible = False 
End If 

If [P8] = "True" Then 
Sheets("7").Visible = True 
Else 
Sheets("7").Visible = False 
End If 

If [P9] = "True" Then 
Sheets("8").Visible = True 
Else 
Sheets("8").Visible = False 
End If 

If [P10] = "True" Then 
Sheets("9").Visible = True 
Else 
Sheets("9").Visible = False 
End If 

If [P11] = "True" Then 
Sheets("10").Visible = True 
Else 
Sheets("10").Visible = False 
End If 

End Sub 
+0

あなたはどのようなエラーを得ていますか? – dwirony

+0

マクロに対して「実行」を選択すると、マクロシートが表示され、実行する選択項目のマクロが表示されません。 –

+0

まず、 'Worksheet_Change'はイベントで、' Worksheet_Change'という名前を残す必要があると思います。そして、このタイプのマクロはExcelの特定のシートに配置され、ワー​​クシート内の何かが変更されると、このマクロがトリガーされるかどうかが決まります。 – dwirony

答えて

0
Sub DataSheetsShown() 
'Test whether or not the cell value is present 
'If value is present, show field 
    If IsEmpty(Range("P2").Value) = True Then 
     Sheets("1").Visible = False 
    End If 
    If IsEmpty(Range("P3").Value) = True Then 
     Sheets("2").Visible = False 
    End If 
    If IsEmpty(Range("P4").Value) = True Then 
     Sheets("3").Visible = False 
    End If 
    If IsEmpty(Range("P5").Value) = True Then 
     Sheets("4").Visible = False 
    End If 
    If IsEmpty(Range("P6").Value) = True Then 
     Sheets("5").Visible = False 
    End If 
    If IsEmpty(Range("P7").Value) = True Then 
     Sheets("6").Visible = False 
    End If 
    If IsEmpty(Range("P8").Value) = True Then 
     Sheets("7").Visible = False 
    End If 
    If IsEmpty(Range("P9").Value) = True Then 
     Sheets("8").Visible = False 
    End If 
    If IsEmpty(Range("P10").Value) = True Then 
     Sheets("9").Visible = False 
    End If 
    If IsEmpty(Range("P11").Value) = True Then 
     Sheets("10").Visible = False 
    End If 
End Sub 
関連する問題