繁体   English   中英

使用VBA禁用Excel中的单元格

[英]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

您不能“禁用”工作表单元格本身; 它不像文本框控件。

但是你可以

  1. 将单元格的填充颜色设置为灰色( Ctrl + 1进入Format Cells > Fill选项卡)
  2. 锁定单元格以防止更改( Ctrl + 1进入Format Cells > Protection选项卡)
  3. 保护工作表(“ Review选项卡>“ Protect Sheet ),以便单元格锁定生效。

如果需要更改锁定的单元格,可以通过编程方式取消保护工作表,进行更改,然后重新进行保护。 另请注意,保护工作表时有几个选项可用。

或者,您可以改为使用文本框,然后像其他控件一样禁用/锁定它。

另请参阅: 锁定或解锁受保护工作表的特定区域

(基于您的“灰色”描述,我相信您正在考虑Microsoft Access Forms上的文本框。)

尝试此代码的范围:

范围(“A1:B2”)。锁定=真

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM