excel vba .Unprotect方法执行但无法取消保护工作表

时间:2019-03-01 01:28:47

标签: excel vba

我正在使用ADODB连接,该连接读取excel行并将其写入数据库。

在偶尔使用该应用程序时,我的工作表进入一种状态,其中Worksheet.Unprotect不会更改工作表状态。当打开工作簿时,该工作表不受保护,并且在我的代码库中没有“保护”命令。不过,如果我运行以下宏,则会达到一种状态:

Public Sub UnProtect()
For Each ws In ActiveWorkbook.Worksheets
        exitCounter = 0
        Do While exitCounter < 50
            If ws.ProtectContents Then
                ws.UnProtect
                Debug.Print (ws.Name & " protected? " & ws.ProtectContents)
            End If
            exitCounter = exitCounter + 1
        Loop
    Next ws
End Sub

我看到的输出如下:

Data protected? True
Data protected? True
Data protected? True
Data protected? True
Data protected? True
Data protected? True
Data protected? True
...

我不知道有任何可复制的行为使工作簿处于“中断”模式,但是在使用数据库函数时,这种情况经常发生。

保存工作簿并重新打开excel可以解决此问题,但是这种情况经常发生,并且破坏了数据库功能。我可以执行哪些VBA动作才能使模型脱离此状态?

0 个答案:

没有答案