与保护UserInterfaceOnly和DrawingObjects不一致的ListRow

时间:2018-12-04 13:43:19

标签: excel vba

我一直在使用Excel文件中的“保护”功能,并且在此论坛上看了一些问题稍有不同的人之后,我决定发表自己的文章。

我有以下Workbook_Open宏,它保护所有工作表,但让宏来做自己的事情:

Private Sub Workbook_Open()

Dim wSheetName As Worksheet

For Each wSheetName In Worksheets
    wSheetName.Protect , UserInterFaceOnly:=True

Next wSheetName

End Sub


除了以下更改事件会更改某些图表的最小值和最大值之外,我没有更改任何代码中的保护:

Private Sub Worksheet_Change(ByVal Target As Range)

Sheets("statusreport").Protect UserInterFaceOnly:=True, DrawingObjects:=False
Sheets("export").Protect UserInterFaceOnly:=True, DrawingObjects:=False


    SOME SELECT CASE MACRO INCLUDING CHANGES MADE TO CHARTS

Sheets("statusreport").Protect UserInterFaceOnly:=True
Sheets("export").Protect UserInterFaceOnly:=True

End Sub


因此,在运行此更改事件之后,仍然无法在任何其他宏中运行ListRow命令,这很有意义。因为在下面的链接之一中,有人说您需要取消保护,执行ListRow并再次保护,因为UserInterFaceOnly不允许这样做。如果我在更改事件结束时写了以下内容:

Sheets("statusreport").Protect UserInterFaceOnly:=True, DrawingObjects:=False
Sheets("export").Protect UserInterFaceOnly:=True, DrawingObjects:=False

或:

Sheets("statusreport").Protect UserInterFaceOnly:=True, DrawingObjects:=True
Sheets("export").Protect UserInterFaceOnly:=True, DrawingObjects:=True


无论我是否在DrawingObjects中选择False或True,ListRow命令都有效。所以我想知道是否如底部最后一个链接中所述,DrawingObjects和UserInterFaceOnly之间存在冲突,还是有其他解释?

感谢您的输入,

巴特

我一直在看以下帖子:

0 个答案:

没有答案