回答
這裏有一種方法可以做你想問的問題。 (或者至少我認爲你在問什麼。)
首先,解鎖工作表中的所有單元格。默認情況下,它們全部處於鎖定狀態(儘管直到您真正保護表單時纔會生效),因此您需要先解鎖它們,否則一旦保護完成後,您將無法在任何位置輸入任何數據片。您可以手動做到這一點(2003年:選擇的所有單元格,格式>單元格>保護>取消選中「鎖定」)或使用VBA如下:
Sub UnlockAll()
With Sheet1 ' Or whatever sheet you're working on
.Unprotect
.Cells.Locked = False
.Protect
End With
End Sub
以上只需要執行一次。
然後,您必須使用Worksheet_Change
事件來動態鎖定和解鎖單元格。在你的工作表模塊中,寫下如下代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Unprotect
If Not IsEmpty(Target) Then
'Data was added in target cell. Lock its neighbours.
Me.Cells(Target.Row, 1).Resize(, 4).Locked = True
Target.Locked = False
Else
'Data was erased from target cell. Release its neighbours.
Me.Cells(Target.Row, 1).Resize(, 4).Locked = False
End If
Me.Protect
End Sub
假設你在單元格B2中寫入數據;這將鎖定單元格B1,B3和B4,以便無法輸入數據。如果您稍後決定清除單元格B2,則會解鎖B1,B3和B4。
Thanq Jean-FrançoisCorbett, – 2012-03-14 05:07:11
很好的答案,但我想爲其他列同樣的行爲,即現在(AD)列有這樣的行爲好,同樣我需要同一行爲(MQ)在同一個Excel表中的列 – 2012-03-14 11:47:19
看,我回答了這個問題。如果您有新問題,請接受此答案併發布新問題。也許在發佈一個新問題之前,您可以嘗試理解這個解決方案,並使其適用於M-Q列和A-D列。 – 2012-03-14 12:53:39
- 1. 在vba excel中鎖定單元格
- 2. 如何鎖定excel中的單元格
- 3. 鎖定Excel單元格中的單元格值
- 4. vba excel鎖定所有單元格
- 5. ASP.NET導出到Excel - 鎖定單元格
- 6. Excel鎖定單元格查詢
- 7. 粘貼到Excel鎖定的單元格
- 8. 鎖定單元格小於零和空單元格VBA Excel
- 9. 基於另一個單元格的值鎖定和解鎖單元格(excel 2013)
- 10. 鎖定/解鎖單元excel VBA
- 11. 在Excel中鎖定單元格,但仍允許顯示/隱藏
- 12. 如何在導出到Excel時鎖定SSRS中的單元格?
- 13. 使用officewriter在excel中可以鎖定單元格嗎?
- 14. 在Excel中鎖定列寬並允許合併單元格
- 15. 如何根據該行的單元格值動態鎖定單元格?
- 16. 鎖定Excel中的特定單元格VBA
- 17. 將行鎖定到Excel中的特定單元格
- 18. 在excel中確定單元格格式
- 19. 在VBA中鎖定單元格
- 20. 鎖定空單元格並解鎖空閒單元格
- 21. 更改鎖定單元格
- 22. 如何鎖定單元格
- 23. 在Excel中確定單元格中的#
- 24. 鎖定工作表中的所有單元格Excel VBA
- 25. 鎖定JXL生成的Excel文檔中的單元格
- 26. 如何鎖定Excel工作表中的單元格內容
- 27. Excel VBA鎖列包含單元格中的特定值
- 28. Excel - 基於另一個單元格解鎖的單元格解鎖
- 29. 鎖定/解鎖變量單元格
- 30. 鎖定基於其他單元格輸入的Excel 2013單元格
你的問題不是很清楚。你是否試圖鎖定3列,以便用戶不能在這些列中輸入任何內容? – assylias 2012-03-13 15:18:29
正如我所理解的那樣,您正在尋找只允許修改組中的4個單元中的一個。即如果欄C有一個值,則將A,B,D留空。正確? – Gaffi 2012-03-13 16:13:59