If语句在ByVal Target As Range中不能正确执行

时间:2018-10-31 11:46:17

标签: excel vba excel-vba if-statement

此代码根据Worksheet_Change(ByVal目标为范围)中提供的条件检查单元格范围。除了这一异常以外,它在大多数情况下都有效。当范围SalesPrice更改时,它将检查借贷金额,“如果我的借贷金额低于271,050并且checkbox1.value为true”,它将转到下一个例程(这是正确的行为)。但是,如果我将重新计算LoanAmount的SalesPrice更改为一个导致LoanAmount超过271050的数字,则不会执行MsgBox代码。但是,如果我再次输入相同的SalesPrice,它将执行。因此,为了使其正常工作,如果最初检查chkbox1.value的代码是否检测到LoanAmount太高,则必须两次输入SalesPrice。

If Target.Address = "$D$5" Then 'Sales Price
If Range("LoanProgram").Value Like "*HFA Bond Miami*" And _
Range("SalesPrice").Value > 317646 Then MsgBox "Miami-Dade Bond Max Sales 
Price is $317,646"
If Range("LoanAmount").Value > 271050 And Sheets("Main").CheckBox1.Value = 
True Then
MsgBox "MDEAT Max Loan Amount is $271,050"
Sheets("Main").CheckBox1.Value = False
End If

1 个答案:

答案 0 :(得分:0)

导入:

Application.EnableEvents = False
    If Target.Address = "$D$5"
    End If
Application.EnableEvents = True

保存文件以将其关闭并重新打开以重置Application.EnableEvents。