如果工作表上的单元格值为false,则为VBA Msgbox

时间:2013-06-03 14:36:20

标签: excel vba excel-vba

我有这个代码它工作正常但我只有1个问题。

它无法正常使用。

我希望每次更改更改时弹出msgbox
如果单元格E45值不是"True",那么当我更改为不同的表单时,我希望它提示我msg说"Records DO NOT Match, would you still like to continue?"

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("E45") <> "TRUE" Then
        MsgBox "Records Do Not Match"
    End If
End Sub

2 个答案:

答案 0 :(得分:3)

你需要改变两件事:

首先,当您选择其他工作表时,需要使用Workbook_SheetActivate event进行捕获。接下来,您应该与文字True值进行比较,而不是字符串"TRUE"

以下代码应放在ThisWorkbook模块中:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Range("E45") <> True Then
        MsgBox "Records do not match"
    End If
End Sub

答案 1 :(得分:2)

将“TRUE”修改为TRUE,以便检查布尔值,而不是字符串“true”