我有一个excel文档,按下按钮查询SQL数据库。该文档需要是只读的。目前,在锁定字段的情况下,按下按钮时,我收到以下运行时错误:
Run-time error '1004':
The cell or chart that you are trying to change is protected and therefore read-only.
我已经完成了一些搜索,我可以找到一些方法来打开只读/受密码保护的文件,但不能在文件是只读时如何将更改应用于受保护的行。
这是我目前在模块开头的代码:
Sub Update()
Application.Calculation = xlCalculationManual
Dim Cnn As Object
Dim rstTmp As Object
Dim appExcel As Excel.Application
Dim wbkReport As Excel.Workbook
Dim wksReport As Excel.Worksheet
Set Cnn = CreateObject("ADODB.Connection")
Set rstTmp = CreateObject("ADODB.Recordset")
Cnn.Open "Driver={SQL Server};Server=IPHERE;;UID=NOPE;PWD=ALMOST;DATABASE=DB;Trusted_Connection=No"
我正在尝试将此功能“逆向工程”为当前的Excel。我几乎没有经验,所以我只是一头扎进深渊。
如果需要任何其他信息,我很乐意添加它。
提前致谢!
答案 0 :(得分:2)
使用以下内容:
Private Sub Workbook_Open()
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.Protect UserInterFaceOnly:=True
Next wSheet
End Sub
这将锁定用户界面中的所有工作表,但允许脚本修改任何内容。您应该将它放在本书的加载脚本中,因为关闭程序并重新打开它将导致保护再次恢复到完全保护。因此,每次打开文件时都必须运行它。