1
以下のコードは、プロセスを3つの別々のサブシステムに分割しても問題ありません。Excel VBA - 1つのワークシートで複数のサブセットを呼び出す
理想的には、コードを実行して一時的に 'シート'のロックを解除し、 'Worksheet_Calculate'サブを実行してから再び 'シート'をロックします。
誰かが助けてくれますか?
Private Sub UnprotectAll()
Dim sh As Worksheet
Dim yourPassword As String
yourPassword = "Test"
For Each sh In ActiveWorkbook.Worksheets
sh.Unprotect Password:=yourPassword
Next sh
End Sub
Private Sub Worksheet_Calculate()
Dim LastRow As Long, c As Range
Application.EnableEvents = False
LastRow = Cells(Cells.Rows.Count, "E").End(xlUp).Row
On Error Resume Next
Dim LastRow As Long, c As Range
Application.EnableEvents = False
LastRow = Cells(Cells.Rows.Count, "E").End(xlUp).Row
On Error Resume Next
For Each Dependents In Range("G6")
For Each HideDependents In Range("G18:G19")
If Dependents.Value = 0 Then
HideDependents.EntireRow.Hidden = True
ElseIf Dependents.Value >= 1 Then
HideDependents.EntireRow.Hidden = False
End If
Next
Next
For Each Vehicle In Range("G7")
For Each HideVehicle In Range("G45:G48")
If Vehicle.Value = 0 Then
HideVehicle.EntireRow.Hidden = True
ElseIf Vehicle.Value >= 1 Then
HideVehicle.EntireRow.Hidden = False
End If
Next
Next
For Each Joint In Range("G9")
For Each HideJoint In Range("I14:J65")
If Joint.Value = 0 Then
HideJoint.EntireColumn.Hidden = True
ElseIf Joint.Value = 1 Then
HideJoint.EntireColumn.Hidden = False
End If
Next
Next
On Error GoTo 0
Application.EnableEvents = True
End Sub
Private Sub ProtectAll()
Dim sh As Worksheet
Dim yourPassword As String
yourPassword = "Test"
For Each sh In ActiveWorkbook.Worksheets
sh.Protect Password:=yourPassword
Next sh
End Sub
は、それがときに自動的にプロセスを実行しているスクリプトのいずれかの方法があるが働き、ご回答いただきありがとうございます「G6は:G9」変更を私は現在、変更がとるようにするために、手動でコマンドを実行するために持っているように場所。 –
変更を自動的に更新/監視するワークシートに以下を追加します。 ます。Private Sub Worksheet_SelectionChange(ByValの対象を範囲) ない交差(対象、範囲( "G6:G9は"))場合は完璧に動作 –
End Subの場合はその後 コール エンドを組み合わせたものではありません、あなたの助けをありがとうございました。 –