-1

我的 excel 工具允许我计算价格。有这个下拉列表单元格指示产品,另一个下拉列表单元格指示应该交付的城市,但我想做的是冻结国家单元格(将其设置为一个值)如果某个值是为产品选择。

使用 Excel 2019

4

1 回答 1

0

您正在寻找 Worksheet.Protect 和 Range.Locked。

一旦用户输入了产品的值并且您想要锁定国家/地区单元格,您将需要执行以下操作:

Activesheet.Unprotect
Range("Everything Except Country").Locked = False
Range("Country").Locked = True
Activesheet.Protect

保护工作表后,所有单元格的默认设置为锁定,因此您只需定义仍可编辑的区域。如果您想在用户输入更多数据时继续锁定其他单元格,则需要取消保护工作表,重新定义锁定范围,然后重新保护工作表。

我建议使用 Worksheet_Change 事件,如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)

if Target.Address = Range("Product").Address then
   Activesheet.Unprotect
   Range("Everything Except Country").Locked = False
   Range("Country").Locked = True
   Activesheet.Protect
end if

End Sub

您可能还想添加一个事件或按钮,工作表可以在其中重置为所有未受保护的单元格。

于 2020-11-12T14:50:35.937 回答