根据单元格值弹出表格

时间:2018-07-14 19:56:21

标签: excel vba userform

当工作表A9中名为“计算器”的单元格中的值与工作表“数据” .Values中的列O中的值之一匹配时,我希望显示一个名为“问题”的弹出表单。在A9单元格中是公式的结果。

此代码有效,但是当我打开其他Excel工作簿时,它显示“下标超出范围错误”。我希望它适用于此特定工作簿,而不会影响我打开的其他工作簿。

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

1 个答案:

答案 0 :(得分:0)

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

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

...最好将ActiveSheet替换为特定的图纸参考。