我想要一个名为'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
您可以使代码仅引用代码存储在其中的工作簿:
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
会很好。