我有一个Excel工作表,其中有输入数据的字段。
假设字段总数为20。每当用户打开工作簿时,默认情况下会锁定其中10个字段。现在,其中一个字段要求用户输入密码。如果密码为“AAA”,则(10个锁定字段中的)5个字段将解锁。如果用户输入密码为“BBB”,则工作表的所有单元格将为只读和锁定。
我关注的是用户输入“BBB”的情况,我试了下面的代码:
if Range("Password").value="BBB" then
cells.select
selection.locked=true
end if
它给我一个错误为“溢出”。
2条答案
按热度按时间vngu2lb81#
3wabscal2#
它给我一个错误为"溢出"。
我怀疑你应该得到一个溢出错误与此代码。溢出可能会发生,如果你使用类似
Cells.Count
在Excel 2007年以上。CountLarge
被引入只是因为Cells.Count
返回一个Integer
值的错误在Excel 2007中,因为增加行/列。Cells.CountLarge
返回一个Long
值。现在回到您的查询。
您不需要SELECT所有单元格。事实上,您应该避免使用
Select
。您可能希望看到How to avoid using Select in Excel VBA此外,如果不保护工作表,则锁定工作表的所有单元格也将无效。您可以将代码更改为
如果您不想使用
Activesheet
,请使用类似下面的代码