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