2017-11-17 14 views
1

おはようございます。VBA-Excel。 Private Sub Worksheet_Change(ByVal Target As Range)に基づいて非表示/非表示の行を処理するにはどうすればよいですか?

私はマクロの初心者です& VBA Excelです。 Private Sub Worksheet_Change(ByVal Target As Range)に基づいて非表示/非表示の行を処理したい。私はアイデアは「B4'to 『B21』からIエントリデータは、(時には彼らは完全に、時には部分的に充填されます。このイベント(表示/非表示の行)を集約することである

Private Sub Worksheet_Change(ByVal Target As Range) 
ActiveSheet.Unprotect Password:="avalon" 
If Target.Column = 2 Then 
Application.EnableEvents = False 
Cells(Target.Row, 5).Value = Date + Time 
Application.EnableEvents = True 
End If 
ActiveSheet.Protect Password:="avalon" 
End Sub 

次のコードでイベントに持っている。それは、重要ではない)。 「B21」をクリックするか、特定のセルでダブルクリックして別のイベントをクリックすると、後続行が22行から36行に再表示され、これらの行が表示されます。私はイベントに基づいて適切なコードを発見する必要性を明確にしようとすることを知らせていない場合は、明確であることを望みます。

ありがとうございます。私はすぐに学ぶことを約束します。

enter image description here

+0

だから、あなたは 'B4'でデータを入力し、' 4'行全体が隠されますか? –

+0

こんにちは。それは本当です、私は行2から21に常に解かれていることを忘れていたことを忘れていました。私は2番目のバッグラベルが必要な場合は、2番目のバッグラベルを記入するために22から36を再表示する必要があります。私は具体的かつ理解可能であることを願っています。ありがとう。 –

+0

K. Davis。セルB4には、ラベル出荷を確認するための英数字コードの連鎖があります。例えば。 190453 - * - * - 1 | 68 | 1。ありがとう。 –

答えて

1

何をやろうとしているが自動的に選択に基づいて行を非表示または表示するためと思われます。

(EntireRowを使用して)範囲オブジェクトの.hiddenを使用して行を表示または非表示にすることができます。これらの行を非表示にするには、何らかの方法が必要です。 selectionChangeイベントを使用すると、現在選択されている行に基づいて行を表示または非表示にすることができます。

次のコードは、ワークシートオブジェクトに置くと役立ちます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Select Case Target.Row 
    Case 21 
     ActiveSheet.Range("B22:B36").EntireRow.Hidden = False 
    Case 22 To 36 
     ActiveSheet.UsedRange.EntireRow.Hidden = False 
    Case Else 
     ActiveSheet.Range("B22:B36").EntireRow.Hidden = True 
End Select 
End Sub 

さらに多くのケースを作成し、選択すると他の範囲を非表示または表示する行番号を指定できます。

私はあなたの質問を正しく理解したと思います。

+0

ありがとうございました...私はそれを試しています....素晴らしい仕事!それは私が探していたものです。もう一度、ありがとうございます。私は今日新しい事を学びました。素晴らしい週末、user8205642 –

関連する問題