0

コストシートの作成に取り組んでいます。私が入力した各費用項目には、費用を更新する必要がある有効日があります。コストが有効期限を過ぎたときに通知するメッセージ ボックスをポップアップ表示しようとしています。私のスプレッドシートでは、有効日は列 D の「見積もりシート」にあり、セル B2 のシート「データ入力」に実際の日付があります。また、どのコスト項目を含めたいかを選択するためのチェックボックスもあります。選択すると、列 Q に True または False が入力されます。私が探しているのは、アイテムが選択されたときに実行されるマクロを実行することです。したがって、「If column Q = True and if column D is less than cell B2 on "Data Entry" then MsgBox "Price is out of date!"」のようになります。日付が空白になる小計もあるため、列 D が空白の場合は無視する必要があります。助けてくれてありがとう!以下をネットで見つけて試してみましたが、うまくいきませんでした。

Private Sub Worksheet_Change(ByVal Target As Range)
'Only run if change made to D3, and D2 and D3 are not = ""
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub

If Range("D:D").Value < Sheets("Data Entry").Range("B2").Value Then
MsgBox "Cost is out of date!"
End If

End Sub
4

1 に答える 1

2

最初の IF コンストラクトに条件を追加して空白セルをチェックし、2 つ目の IF コンストラクトで Range("D:D") をターゲットに追加する必要があります。

Private Sub Worksheet_Change(ByVal Target As Range)
'Only run if change made to D3, and D2 and D3 are not = ""
If Intersect(Target, Range("D:D")) Is Nothing or IsEmpty(Target) Then Exit Sub

If Target.Value < Sheets("Data Entry").Range("B2").Value Then
   MsgBox "Cost is out of date!"
End If
于 2013-02-26T15:54:20.067 に答える