これは、サービス ワーカーの実行時間を計画するために使用しているスプレッドシートの例です。C9
&C10
からJ9
&J10
は当日に入力される時間で、技術者はその日の実行を計画する必要があります。 はB11
最後のサイトからブランチに戻るのに要する時間です。
私の質問は次のとおりです:C9:J9
&範囲 に値が入力されたらC10:J10
、Excel でエラー メッセージを表示して、可能であれば B11 の時間を追加するように技術者に促すようにしたいです。
スプレッドシートについて:技術者は、 と の時間を分単位で追加しC9:J9
、C10:J10
これが と の時間に変換されますB9
。B10
次に、これらを合計し、最大 7 時間が に入力されD11
、超過時間は F11 に入力されます。
答え1
この VBA サブルーチンを標準モジュールとして使用します。
注意
- VBAのプロジェクトエクスプローラーでワークシートの名前をダブルクリックし、コピー&ペーストこのコード。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Range("C9:J10"), Target) Is Nothing) Then
MsgBox "Cell " & Target.Address & " has filled/altered, now enter data into B11.", vbInformation, "Prompting you,,"
Range("B11").Select
End If
End Sub
- 技術者が範囲内にデータを入力/変更し始めるとすぐに
C9:J10
、セルが入力されたことを示すマクロ ポップ メッセージが表示され、範囲が満たされますB11
。
必要に応じて、このコード内のセル参照を調整できます。
答え2
マクロを使用する代わりに、メッセージを表示したい場所に次のような数式を配置することもできます。
=If(COUNTA(C9:J10)>1,”Please add the time”,””)
これは、誰かが情報を入力し始めるまで、C9:J10 が空白であると想定します。