2013-01-11 139 views
0

我有一本工作簿,其中根據需要提供了幾張紙。在這個工作簿中,我使用了宏並鎖定了一些特定的單元格和列,我使用了不保護和保護選項。一切工作正常在我的機器上,但是當我把它作爲SharedWorkBook它給我錯誤,尤其是ThisWorkBook.Sheets(「PSE」)。解除保護ThisWorkBook.Sheets(「PSE」)。保護聲明。因此,我用ThisWorkBook.Sheets(「PSE」)。取消保護共享ThisWorkBook.Sheets(「PSE」)。ProtectSharing。即使現在,我也得到這些線路的錯誤。
VBA Excel-如何通過vba進行解除保護和保護


Sub SheetHider() 
ThisWorkbook.Sheets("SheetA").UnprotectSharing 
Cuser = ThisWorkbook.Sheets("SheetA").Range("A2").Value 

且誤差
運行時錯誤 '438' 對象不支持此屬性或方法。

我的要求: 1)我不得不使用宏,止動性,使我不得不使用撤消和保護報表,當我做它作爲SharedWorkBook這些東西應該工作。
我一直在尋找許多網站這一個星期。至少給我一些替代方案來做到這一點。
任何幫助將不勝感激。謝謝

+1

您能列出錯誤/錯誤消息的性質以及發生錯誤的代碼行嗎?更多的代碼也不會受到傷害。否則很難說什麼。 –

+0

@JüriRuut你好,你可以看到我更新的編輯。 –

回答

3

UnprotectSharingProtectSharing都屬於Workbook對象。所以你不能做你想做的事情。

您可以這樣做ThisWorkbook.UnprotectSharingThisWorkbook.ProtectSharing但這只是爲了保護共享工作簿設置而設計的,以便人們無法在沒有密碼的情況下將其刪除。

其次,當共享工作簿時,您無法取消保護或保護工作表。您必須取消共享工作簿,取消保護工作表,然後再次共享工作簿。這不是很實際。

+0

哦,那麼這對我的項目和我來說都將是一個非常大的問題。那麼我怎麼能限制用戶編輯,而不是基於Environ(「用戶名」)動態地編輯一些特定的單元格或列。請儘快回覆我。 –

+0

嗨,尼克,讓我更清楚地陳述我的要求。我的Excel有很多員工相關的數據。要求是當前用戶應該只能編輯他的部門數據。同時多個用戶將同時使用該工作表,因此他們需要共享工作簿。一切工作正常,直到我分享工作簿。有什麼想法嗎 ? –

+0

@SaiKiranMandhala你想做的事是不可能的共享工作簿。我很抱歉,我的回答不是你想聽到的,而是它是什麼。您需要使用不共享的工作簿,否則不需要保護。 –

0

在保護共享工作簿之前,您必須保護工作表,取消保護的順序相反。

+0

其實我沒有保護工作表,並解鎖一些基於userroles的列後,我保護工作表。我沒有得到你的答案,你能否給出答案。 –