Excel和VBA:按下按钮更新受保护的字段

时间:2011-03-18 13:18:59

标签: excel vba excel-vba

我有一个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。我几乎没有经验,所以我只是一头扎进深渊。

如果需要任何其他信息,我很乐意添加它。

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用以下内容:

Private Sub Workbook_Open()
    Dim wSheet As Worksheet
    For Each wSheet In Worksheets
        wSheet.Protect UserInterFaceOnly:=True
    Next wSheet
End Sub

这将锁定用户界面中的所有工作表,但允许脚本修改任何内容。您应该将它放在本书的加载脚本中,因为关闭程序并重新打开它将导致保护再次恢复到完全保护。因此,每次打开文件时都必须运行它。