[英]Disable a cell in Excel using VBA
我正在尝试进行一些计算,并在单击“ Calculate
按钮(“活动X”按钮)时更新单元格中的结果。
打开Excel工作表时,我希望很少有单元格被禁用并显示为灰色。 为了实现相同的目的,我在Workbook_Open()
Sub下编写了以下代码行。 在sub下编写的所有条件都工作正常,除了我写的用于禁用单元格的语句(写入锁定函数以禁用单元格)。
经过一些冲浪,我开始明白,如果需要禁用/锁定单元格,则需要保护表单。 所以,我在代码中添加了一行来保护工作表。 但是,这会停止在单元格中更新结果。
单击计算按钮后,Excel表明“工作表受保护”。 那么,无论如何使用VB脚本启用/禁用单元格而不保护表格吗?
Private Sub Workbook_Open()
Dim b1 As Variant
Set b1 = Sheets("Calculation Tool").CommandButton22
b1.Enabled = False
Range("B4:C4") = ""
Range("E4:O4") = ""
Range("E9:F9") = ""
'This is the code written to disable the cells N4 and O4
Sheets("Calculation Tool").Range("N4:O4").Locked = True
Sheets("Calculation Tool").Protect
End Sub
您不能“禁用”工作表单元格本身; 它不像文本框控件。
但是你可以 :
Format Cells
> Fill
选项卡) Format Cells
> Protection
选项卡) Review
选项卡>“ Protect Sheet
),以便单元格锁定生效。 如果需要更改锁定的单元格,可以通过编程方式取消保护工作表,进行更改,然后重新进行保护。 另请注意,保护工作表时有几个选项可用。
或者,您可以改为使用文本框,然后像其他控件一样禁用/锁定它。
另请参阅: 锁定或解锁受保护工作表的特定区域
(基于您的“灰色”描述,我相信您正在考虑Microsoft Access Forms上的文本框。)
尝试此代码的范围:
范围(“A1:B2”)。锁定=真
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.