我正在使用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动作才能使模型脱离此状态?