无效的圆圈消失,当Sub结束(VBA)

我想圈出这样的无效数据:

圈出无效数据

在这里输入图像说明

用户保存文档时应该出现圆圈,所以我创build了这个函数:

Private Function clearInvalidCircles(sheetName) With Sheets(sheetName) .ClearCircles ShapesBefore = .Shapes.Count .CircleInvalid ShapesAfter = .Shapes.Count If ShapesAfter > ShapesBefore Then MsgBox "Invalid entries are marked with a red circle, please change it to a valid input." End If End With End Function 

…并将其添加到Workbook_BeforeSave函数中:

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) clearInvalidCircles "Sheet1" End Sub 

但是,如果我想保存文件,它不显示无效的数据…

我debugging了我的代码,发现, clearInvalidCircles工作,只有当文档被保存(在Workbook_BeforeSave之后)

有没有更好的select来避免这个问题?

提前非常感谢您的回答。