0

这是我的第一个 vba 任务。事实上我第一次用Alt+F11打开VB编辑器!我需要做的是,根据开始日期和天数计算结束日期。我在A列中有开始日期的值和持续时间,即;B 列中的天数。到目前为止,计算工作日是我的第二个关注点。我首先需要知道的是,如何使用 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 回答