根据单元格值弹出窗体

问题描述 投票:0回答:1

我想要一个名为'Question'的弹出窗体,当工作表中单元格A9中名为'Calculator'的值与工作表'Data'.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
excel vba userform
1个回答
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会很好。

© www.soinside.com 2019 - 2024. All rights reserved.