2

我使用宏记录器来发现 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

我希望找出如何使一个对话框出现,要求用户修复无效数据。注释掉的东西是我想要完成的伪代码。

谢谢

4

1 回答 1

4

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

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
于 2013-08-12T16:05:42.753 回答