2
私は2つを組み合わせる必要がありますPrivate Sub Worksheet_Change(ByVal Target As Range)
私はExcelのVBAコードに慣れています、どうすればいいですか?以下のコード。2つのプライベートサブワークシートを結合する_Change(ByValターゲットとして範囲)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, r As Range, rv As Long
Set rng = Intersect(Target, Range("C77:AD81"))
If rng Is Nothing Then Exit Sub
For Each r In rng
rv = r.Value
'Peak Flow Doctor Warning and Weight Gain Warning
If rv = 180 Then
MsgBox "''PEAK FLOW CRITICAL AT 180L/MIN''" & vbCrLf & "''PREDNISONE PROBABLY REQUIRED''" & vbCrLf & "''MAKE DOCTOR'S APPOINTMENTS ASAP''", vbInformation, "WARNING"
End If
If rv = 120 Then
MsgBox "''PEAK FLOW CRITICAL AT 120L/MIN''" & vbCrLf & "''MAKE URGENT DOCTOR'S APPOINTMENTS''" & vbCrLf & "''OR GO TO A&E IMMEDIATELY''", vbInformation, "CRITICAL WARNING"
End If
If rv >= 450 Then
MsgBox "''CHECK OR TEST PEAK FLOW METER''" & vbCrLf & "''IT MAY BE FAULTY AND GIVING FALSE HIGH's''", vbInformation, "WARNING"
End If
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, r As Range, rv As Long
Set rng = Intersect(Target, Range("C93:AD93"))
If rng Is Nothing Then Exit Sub
For Each r In rng
'Weight Gain Warning
rv = r.Value
If rv = 90 Then
MsgBox "''LIKELY TO EXACERBATE COPD SYMPTOMS''" & vbCrLf & "''CHRONIC ASTHMA OR EMPHYSEMA PROBABLE''", vbCritical, "WARNING"
End If
If rv = 95 Then
MsgBox "''IF SWELLING IN ANKLES PROBABLE FLUID RETENTION''" & vbCrLf & "''POSSIBILITY OF HEART FAILURE IF UNATTENDED''", vbCritical, "CRITICAL WARNING"
End If
Next r
End Sub
あなたが結合する方法を意味していますか?単一の変更イベントで両方の手順を実行しますか?あなたはそれらを特定の順序で行う必要がありますか?あなたの正確な問題とあなたが試したことを説明しようとすると、おそらく解決策を提供することができます。 – Sercho
簡単な方法は、2番目のプライベートサブから変数の名前を変更することです。たとえば、rng - > rng2:r - > r2です。 – Maki
範囲値にMsgboxペンダントを返す2つの異なるターゲット範囲がありますが、2つのプライベートサブを実行することはできません。私はMaki example、rng - > rng2:r - > r2を試しましたが、次のrでコンパイルエラーが発生します。私はVBAを初めて使っているので少し混乱します。 –