这是我的第一个vba任务。事实上我第一次使用Alt + F11打开了VB编辑器! 我需要做的是,根据开始日期和天数计算结束日期。 我有A栏中的开始日期值和持续时间,即; B栏中的天数。 计算工作日是我目前的第二个问题。我首先需要知道的是,我如何使用Worksheet_Change事件?
我想做的是,当用户在A列的任何单元格中输入持续时间时,说A(n),在Worksheet_Change事件代码中选择单元格B(n)。当在B2中输入开始日期时,将调用计算结束日期的函数。如果它是正确的方法,请告诉我。
同样给我带来麻烦的是,当我在单元格中输入值后按Enter键时,Worksheet事件突然出现。
请帮我解决这个简单但复杂的问题!
答案 0 :(得分: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