Excel - 複数シートの条件付き非表示行

問題

複数のシートを持つ1つのExcelファイルがあり、それらすべてに同じ列と行があります。 特定のセルの値がゼロの場合は、すべてのシートの特定の行(すべてのシートに同じ行番号)を非表示にする必要があります。

それで、どのように私はVBでそれをすることができて、前の指定されたセルの値を変更するときに自動的に更新されます。

すなわち、私は10人の従業員のために10枚のシートを持っています、そして各シートに私は以下のデータがあります:

 A1 =従業員名A2 =年齢、A4 =給与、B4 = 4000(すべての金額(値)は各シートで異なります)A5 =控除、B5 = 500 A6 =保険、B6 = 1000 A8 =純給与、B8 = 2500 A10 =小切手による支払いA11 =送金による支払い、B11 = 2500 A13 =合計、B13 = 2500 

私の要件は、10枚すべてのシートのB列にゼロがある各行を隠すことです。 もちろん、すべてのシートの値は1つのマスターシートから取得されるため、マスターシートの値が変更された場合は、各通信者の10シートでも変更されます。

注:値をフィルタリングする必要はありません。

簡単に言うと、B列にゼロがあるすべての行(指定された行)を非表示にし、同じ行と列がある10枚のシートに適用するマクロを作成します。

溶液

  • VBEを開く
  • マスターシートをクリックしてください
  • このコードを貼り付けてください。

 Private Sub Worksheet_Change(ByVal Target as Range)Target.Column 2の場合はbhideをブール値として終了し、(CStr(Target) "0")の場合Sub bHide = Trueの場合Sheet.Name = ActiveSheetの場合、シート内の各シートに対してbHide = Falseの場合。名前次にGoTo Next_Sheetシート(Sheet.Name).Rows(Target.Row).Hidden = b次のシートを隠す:次の端部サブ 

注意

フォーラムでこのヒントを寄せてくれたrizvisa1に感謝します。

前の記事 次の記事

トップのヒント