Excel “如果我的工作表具有无效数据触发器”对话框

Excel “如果我的工作表具有无效数据触发器”对话框,excel,validation,vba,Excel,Validation,Vba,我使用宏记录器来发现ActiveSheet.CircleInvalid,它循环任何不符合单元格数据验证标准的数据。我将宏链接到窗体控件;到目前为止,我已经: Sub datavalidationcheck() ActiveSheet.CircleInvalid '//Add if there are invalid cells being circled then prompt user with dialog box '//else Application.Dialogs(xl

我使用宏记录器来发现ActiveSheet.CircleInvalid,它循环任何不符合单元格数据验证标准的数据。我将宏链接到窗体控件;到目前为止,我已经:

Sub datavalidationcheck()
 ActiveSheet.CircleInvalid
 '//Add  if there are invalid cells being circled then prompt user with dialog box 
  '//else 
 Application.Dialogs(xlDialogSendMail).Show
End Sub
我希望找到如何使一个对话框出现,要求用户修复无效数据。注释掉的东西是我试图实现的伪代码


谢谢

这里有一个想法,它基于以下事实:无效数据周围的圆圈是工作表上的实际形状:

Sub Invalid()
Dim ws As Excel.Worksheet
Dim cell As Excel.Range
Dim ShapesBefore As Long
Dim ShapesAfter As Long

    Set ws = ActiveSheet
    Set cell = ActiveCell
    With ws
        .ClearCircles
        ShapesBefore = ws.Shapes.Count
        .CircleInvalid
        ShapesAfter = ws.Shapes.Count
        If ShapesAfter > ShapesBefore Then
            MsgBox "Invalid Circles displayed"
        End If
    End With
    End Sub

这里有一个想法,它基于以下事实:无效数据周围的圆圈是工作表上的实际形状:

Sub Invalid()
Dim ws As Excel.Worksheet
Dim cell As Excel.Range
Dim ShapesBefore As Long
Dim ShapesAfter As Long

    Set ws = ActiveSheet
    Set cell = ActiveCell
    With ws
        .ClearCircles
        ShapesBefore = ws.Shapes.Count
        .CircleInvalid
        ShapesAfter = ws.Shapes.Count
        If ShapesAfter > ShapesBefore Then
            MsgBox "Invalid Circles displayed"
        End If
    End With
    End Sub

太棒了,我添加了通过outlook保存和发送电子邮件的功能。使用以下代码:If ShapesAfter=ShapesBefore Then Application.DialogsxlDialogSendMail.Show End是否有方法将电子邮件字段填充到:subject:和body:并自动发送?我很高兴它对您有效!好问题,我学到了一些新东西。我建议你研究一下你的电子邮件问题——那里有很多信息——如果需要的话,回来问一个单独的问题。太棒了,我添加了通过outlook保存和发送电子邮件的功能。使用以下代码:If ShapesAfter=ShapesBefore Then Application.DialogsxlDialogSendMail.Show End是否有方法将电子邮件字段填充到:subject:和body:并自动发送?我很高兴它对您有效!好问题,我学到了一些新东西。我建议你研究一下你的电子邮件问题——那里有很多信息——如果需要的话,回来问一个单独的问题。