如何根据另一个单元格值锁定VBA

时间:2019-11-08 12:47:36

标签: excel

我正在使用2个excel列。

我想根据第一个的值阻止第二个的编辑。

我已经在第二个单元格中尝试过:IF(A1<>1000;B1.Locked = True;B1.Locked = False)

但是它不起作用...我仍然可以编辑单元格。

此外,第二个单元格的内容由数据验证系统管理,该系统仅允许3个值(YesNoMaybe)。

是否有可能用完VBA代码?

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

起初我以为这是不可能的,因为用公式锁定单元格是根本不可能的。但是对于您的情况,使用数据验证实际上可能是可行的。方法如下:

在工作簿中的任何位置创建一个包含值“是”,“否”,“可能”的命名范围。就我而言,我已将其命名为YesNoList

然后在您的单元格中,put on data validation(类似于链接中的图片)允许包含以下公式的列表。 (假设单元格AB1为空)

=IF(A1<>1000,YesNoList,AB1)

如果条件满足,这将允许用您的YesNoList中的值填充单元格,否则将不允许任何内容(因为验证列表为空白,假设AB1为空白,否则为非)任何其他空白单元格

如果您不希望空白,那么您当然也可以在所引用的单元格中具有一些固定值。也许您可以在最后一部分添加更多公式,以精确满足您的需求。只需确保直接引用一个单元格或范围,否则您将得到一个错误。