我需要一塊VBA編碼來幫助完成一個項目。我的VBA知識非常基礎,所以我很掙扎。我儘可能地提供了更多的細節,因爲我已經閱讀了類似的請求,但仍未能完成代碼。EXCEL VBA用於鎖定偏移單元格-1範圍內的單元格列空白
我有一系列的「兩列」(模式和書桌)(x7),代表星期六至星期六的七天。每天的左欄代表班次模式,每天的右欄代表分配給每個人的桌面。有一些空白列,所以我正在處理名稱範圍。
換檔模式列x7位於左側,定義爲名爲「模式」的範圍。辦公桌欄位於每個移動欄的右側,並被定義爲一個名爲「辦公桌」的範圍。列是大約25個單元格。但是,這從工作簿到工作簿有所不同。因此使用命名範圍。
我想鎖定名爲「書桌」的名稱範圍內的每個單元格,其中名稱範圍「模式」中留下的單元格-1列未填充。
該工作表已被選中和未受保護,並且名爲書桌的範圍已解鎖。
Sheets("Assign Desks").Select
ActiveSheet.Unprotect
Application.Goto Reference:="Desks"
Selection.ClearContents
'Unlock Cells
Selection.Locked = False
在鎖定單元格的代碼被保護後,功能區被隱藏,屏幕被拆分顯示到工作表中。這工作正常。
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
其他信息Pattern列包含一個公式,該公式在刷新數據(粘貼到工作簿的另一個工作表中)時顯示該模式。兩列都包含條件格式,用於格式化一次填充的單元格。
一旦刷新,用戶需要爲每個班次分配工作臺(由於需要人工決定,因此這不能自動執行)。但是,我希望用戶能夠從列表中選擇需要分配工作臺的單元格可用的剩餘可用書桌。我希望單元格不會被移位(因此被鎖定)。 Part of worksheet
非常感謝您回答我的問題。我認爲我已經很好地描述了這個要求,但實際上我應該回顧一下,除了包含換擋模式的單元格的+1右邊以外,所有的單元格都必須鎖定。標題行是5改變它沒有問題。換檔模式欄包含公式= IFNA(IF(OR(E6 =「x」,E6 =「xs」,E6 =「XR」,E6 =「XR」,E6 =「」),「」,LEFT(E6 ,9)),「」) – Penelope53
我在上面編輯了我的答案,以便鎖定所有內容,然後解鎖位於Shift型列中非空白單元格右側的單元格。那是你需要的嗎? –
我可能是錯的,但「清晰的中間col」不起作用。我假設這是因爲這些單元格包含帶數據驗證的下拉列表,允許用戶從第三列中顯示的列表中選擇一個桌面。那天選擇的桌子已經消失了。因此這些單元不能被清除。 – Penelope53