根据单元格值弹出表单
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
。
当名为 '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
。