【发布时间】:2019-04-04 13:48:08
【问题描述】:
此代码根据 Worksheet_Change(ByVal Target As Range) 中提供的条件检查单元格范围。除了这个异常之外,它在大多数情况下都有效。当范围 SalesPrice 更改时,它会检查贷款金额值,“如果我的贷款金额低于 271,050 并且 checkbox1.value 为真”,它将进入下一个例程(这是正确的行为)。但是,如果我将重新计算 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
【问题讨论】:
-
worksheet_change 事件只有在你手动更改 D5 时才会启动,如果你手动更改工作表上的任何位置,代码将检查是否为 D5,如果不是,则退出子.计算不是 worksheet_change 事件。
-
您能否正确缩进您的代码并确保换行符正确?目前尚不清楚您的
If语句是否是单行语句。原样的代码不会编译。最好是在这里复制/粘贴代码并使用 Ctrl + K 将其格式化为代码块。 -
D5 正在手动输入。
标签: excel vba if-statement