0

これは私の最初の vba タスクです。実際、初めて Alt+F11 を使用して VB エディターを開きました。私がする必要があるのは、開始日と日数に基づいて終了日を計算することです。列 A に開始日と期間の値があります。列 B の日数。営業日数の計算は、今のところ私の 2 番目の関心事です。最初に知っておく必要があるのは、Worksheet_Change イベントをどのように使用できるかということです。

私が考えたことは、ユーザーが列 A の任意のセルに期間を入力すると、A(n) と言うと、Worksheet_Change イベント コードでセル B(n) が選択されます。そして B2 に開始日を入力すると、終了日を計算する関数が呼び出されます。そのアプローチが正しいかどうか教えてください。

また、セルに値を入力した後に Enter キーを押すと、Worksheet イベントが突然動作するという問題が発生しました。

この単純だが複雑な問題を解決するのを手伝ってください!

4

1 に答える 1

0

以下のコードを試してください。このコードをワークシートに入れてください。また、このコードは列全体に適用されます。

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    Application.EnableEvents = False

    If Target.Column < 2 And Target.Count < 1 And Target.Value = "" Then Exit Sub

    If Target.Column = 1 And Target.Offset(0, 1) <> "" Then
        Target.Offset(0, 2) = DateAdd("d", CDbl(Target.Value), CDbl(Target.Offset(0, 1)))
    ElseIf Target.Offset(0, -1) <> "" Then
        Target.Offset(0, 1) = DateAdd("d", CDbl(Target.Offset(0, -1)), CDbl(Target.Value))
    End If


    Application.EnableEvents = True
End Sub
于 2013-03-21T15:34:41.927 に答える