根据单元格值弹出表单

Pop up form depending on cell value

当名为 'Calculator' 的工作表中单元格 A9 中的值与工作表 'Data' 中 O 列中的值之一匹配时,我希望显示一个名为 'Question' 的弹出窗体.价值观。单元格 A9 中是公式的结果。

此代码有效,但当我打开其他 Excel 工作簿时,它会给我 'Subscript out of range error'。我希望它应用于这个特定的工作簿,而不影响我打开的其他工作簿。

Private Sub Worksheet_Calculate()

If IsError(Application.Match(Range("A9").Value, Sheets("Data").Columns("O"), 0)) Then Exit Sub

If Application.Match(Range("A9").Value, Sheets("Data").Columns("O"), 0) Then
    Question.Show
End If

End Sub

您可以使代码仅引用存储代码的工作簿:

Private Sub Worksheet_Calculate()
    With ThisWorkbook
        If IsError(Application.Match(.ActiveSheet.Range("A9").Value, .Sheets("Data").Columns("O"), 0)) Then Exit Sub
        If Application.Match(.ActiveSheet.Range("A9").Value, .Sheets("Data").Columns("O"), 0) Then
            Question.Show
        End If
    End With
End Sub

...最好用特定的 sheet 引用替换 ActiveSheet