更改单元格时提示用户

时间:2009-01-06 16:41:04

标签: excel spreadsheet

我对创建宏和编程非常陌生。我有一个38个标签的工作表。 31个标签适用于该月的日期。我想创建一个宏,只要在N列中为这31个选项卡中的每一个选择“MCO”,就会提示用户发出警告消息。这可能吗?

由于

2 个答案:

答案 0 :(得分:2)

可以使用工作簿级别SheetSelectionChange事件。在VBA项目的ThisWorkbook模块中粘贴以下代码:

Option Compare Text
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim SelectedCellsInColN As Range
    ' Make a range of the cells in Target range that intersect with the cells in the N   column
    Set SelectedCellsInColN = Intersect(Target, Target.Parent.Range("N1:N" & CStr(Target.Parent.Rows.Count)))

    If Not SelectedCellsInColN Is Nothing Then
        ' The user has selected a cell in column N
        Dim CurrCell As Range
        For Each CurrCell In SelectedCellsInColN
            ' If the cell's value contains mco (in any case) then prompt the user with a messagebox
            If CurrCell.Value Like "*MCO*" Then
                MsgBox "You've selected MCO"
                ' Exit the sub so we don't keep bugging the user about it...
                Exit Sub
            End If
        Next CurrCell
    End If
End Sub

基本上代码的作用是查看目标范围以查看是否选择了N列中的任何单元格,然后遍历列N中任何选中的单元格以查看其值是否包含MCO(您可以如果你只想要一个单元格只包含“MCO”的提示,就可以摆脱星星,如果是这样,会提示用户并退出。

希望有所帮助。

-Jon

答案 1 :(得分:0)

您在寻找宏解决方案还是vba解决方案?两者是不同的。对于使用宏重编程器执行步骤的宏,对于VBA解决方案,请从Jon的回答开始