VBA:目标列之前的Target.Address影响列

时间:2018-12-06 13:35:48

标签: excel vba

    'Require New Due Date Comment
    If Range(Target.Address).Value <> "" Then
        MsgBox "Provide Reason for New Due Date", vbOKOnly
        Range(Target.Address).Offset(0, 1).Select
    End If

大家好,希望您能提供帮助,我是VBA的新手,但是直到现在为止,我成功地更改了老板要求我提供的模板代码。虽然这个让我很沮丧。该代码是由不再在公司工作的人编写的。

我有一个电子表格,其中有几列,其中有些被锁定以便用户不能输入,而其他则不能,以便用户可以更改从数据库中提取的任务的值。当在“新到期日期”列中输入日期时,该特定的代码段应该弹出一个消息框。取而代之的是,当我在前面的列中输入评论时(取消评论部分),它会弹出。

我尝试在其他if语句中指定该列,但这只是完全关闭了弹出窗口。

对于该取消评论部分,我几乎具有完全相同的逻辑,并且工作正常。但是,它可以使另一个像元的附加限定词等于要提取的“已取消”的值。仅当该单元格被列为“取消”时,才会发生上述情况,但是如果任务被取消,则不需要这样做,因此不应在每次取消任务时弹出它。

谢谢!

ETA:忘了说,它按预期工作,直到我应经理的要求在工作表中添加了另一列。我发现它没有指定特定范围就可以了。

1 个答案:

答案 0 :(得分:0)

弄清楚了。后面有一段代码引用了错误的列(之前是O)。谢谢大家!

    If Not Intersect(Target, Range("P14:P1437")) Is Nothing Then
    On Error GoTo PError:

    If InStr(1, Target.Address, ":", 1) > 0 Then

    GoTo PError

    End If