2014-03-26 29 views
0

我有一個Excel表格,其中使用了宏,下拉列表和按鈕。我在不同的單元格中有很多公式,例如乘法,查找等。按鈕的工作方式是當我按下它時添加一個空行並向它添加一些數據。有些情況下,假設用戶輸入數據保護excel表格,但有一些例外

按鈕,公式和下拉菜單更改和添加新的數據到不同的細胞

少數細胞現在我要保護的片上,從而用戶不能更改內容有誤或有意。

但是,當我保護工作表的顯示錯誤使用的紙張,因爲按鈕,乘法和VLOOKUP傾向於所有的時間來改變不同單元中的數據。

是否有可能僅使用戶(除一些細胞,其中應該進入數據)讀入紙,讓宏,公式和下拉菜單更改單元格內容

+1

如果您可以在工作簿打開時通過代碼保護工作表,則可以使用「僅用戶界面」選項來允許VBA仍然進行更新。 http://stackoverflow.com/questions/125449/how-to-protect-cells-in-excel-but-allow-these-to-be-modified-by-vba-script –

+0

我需要更多信息。數據驗證列表或Form/Active-X控件中是否有下拉列表?你爲每個添加的行添加按鈕還是靜態的?你可以在宏,按鈕和下拉菜單後面顯示代碼嗎?您使用的是哪個版本的Excel?當你添加一行或者你在使用Excel表格時,是否需要VBA從上面的行復制公式,或者你是否會自動使用Excel表格來完成這些工作? –

+0

@Tim Williams感謝您的鏈接,它給了我正確的東西,'工作表(「conf」)。保護密碼:=「」,UserInterfaceOnly:= True'也可以通過我使用的公式用戶編輯Excel的審查選項卡下的範圍」的數據驗證 – Gajju

回答

1

發生在宏workbook_open()來解鎖片第一,然後在你的其他宏年底將鎖宏恩:

Private Sub Workbook_Open() 
    On Error Resume Next 
     Sheets("Sheet1").Unprotect Password:="" 

    *****your codes here 

     Sheets("Sheet1").Protect Password:="" 
end sub 

這將確保當你的代碼運行你的表沒有被鎖定,但會鎖定一旦你的代碼完成。

+0

感謝您的幫助,我用你的代碼,它工作得很好,但現在我用這'工作表(「conf」)。保護密碼:=「」,UserInterfaceOnly:= True'這樣我就不需要在每個宏中添加解除保護或保護密碼 – Gajju