因此,使用宏我可以創建新工作表,其中一些單元格將被鎖定。我在宏中使用此方法:如何在Excel中處理這個單元格鎖? (VBA)
ActiveSheet.Protect UserInterfaceOnly:=False
(對於整個新的工作表) 然後在這個宏的一些細胞:locked = False
然後鎖定屬性,其他的宏切換特定細胞的使用真或假鎖。例如,此表中的一個表被鎖定,但是按鈕的宏重新計算並重寫表的值,並且在宏的開始處table.Locked = False
和宏Locked = True
的末尾再次執行此操作。
但是當我保存Excel,關閉並重新打開它,我按下按鈕,但我得到"unable to set the Locked property"
我應該怎樣做呢?
更新:
Sub userinterface()
ActiveSheet.Protect UserInterfaceOnly:=True
End Sub
Sub locking()
Range("A1").Locked = False
Range("A1") = 5
Range("A1").Locked = True
End Sub
所以我有一個新的工作表,和我運行用戶接口宏。它鎖定整張紙。然後我運行鎖定宏,在給定單元格中寫入5並再次鎖定單元格。之後,我保存Excel,關閉並打開它,我只想運行鎖定宏。此時我收到錯誤。
Máté,我們需要的是一個最小的,完整的,可驗證的例子來重現這個問題,如下所示:http://stackoverflow.com/help/mcve沒有這些,我很難理解你似乎經歷過的問題並不能重現它(爲了解決它)。因此,請添加您當前使用的完整代碼來鎖定文件(所有相關的宏及其放置位置:例如作爲工作表事件,或者在文件關閉時作爲事件執行等)。也許那麼我們可以重現你的問題。 – Ralph
當然,它會很短。 –
這是你的全部代碼嗎?沒有什麼可以表明這不應該工作得很好?在你的問題中你說'table.locked = False',但是代碼中有其他說明嗎? –