2011-03-18 34 views
0

我有一個Excel按鈕按下時查詢SQL數據庫的文檔。該文件需要是隻讀的。目前,同場鎖定,按下按鈕,收到以下運行時錯誤:Excel和VBA:更新按鈕上的受保護字段

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。我幾乎沒有這方面的經驗,所以我只是深入到最深處。

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

在此先感謝!

回答

2

使用以下命令:

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

這將鎖定在用戶界面中的所有表,但允許腳本修改任何內容。您應該將其放入本書的加載腳本中,因爲關閉程序並重新打開該程序將使保護再次恢復爲完全保護。所以每次打開文件時都必須運行它。

+0

謝謝,這是完美的! – Eric 2011-03-18 13:34:47