我想将 Excel 表用于动态目的。
需要在 A 列中输入扫描条形码获得的各种产品编号。我想确保如果输入(扫描)的产品编号以“200”开头,则输入产品编号后单元格会自动锁定。如果输入任何其他产品编号,单元格不会被锁定。
我还想将“200”以外的产品代码系列的颜色改为红色。
例如:
Column A
200412311 - Cell " A1" gets locked
200142390 - Cell " A2" gets locked
200412345 - Cell " A3" gets locked
200154672 - Cell " A4" gets locked
200234578 - Cell " A5" gets locked
100452433 - Cell is not locked
100452412 - Cell is not locked
答案1
我相信按照这些步骤你就能得到你想要的。
- 选择 A 列。右键单击并选择
Format Cells...
。在“保护”选项卡上,取消选中Locked
。单击“确定”。 - 在 A 列仍处于选中状态的情况下,单击
Conditional Formatting
“主页”功能区,然后选择New Rule...
。从那里选择Use a formula to determine which cells to format.
您可以输入公式=LEFT(A1,3)<>"200"
并将格式设置为红色文本。单击确定。 - 在“审阅”功能区中,单击
Protect Sheet
。选择您想要的保护设置。 - 按Alt+F11打开 VBA 编辑器。在 VBA 项目资源管理器窗格中,双击您正在处理的工作表的模块。
这将打开一个文本编辑器窗格。在该窗格中粘贴以下代码。Private Sub Worksheet_Change(ByVal 目标作为范围) 昏暗的 c 作为范围 如果不相交(目标,范围(“A:A”))为空,则 对于目标单元格中的每个 c 如果 Len(CStr(c.Value)) >= 3 则 如果 Left(c.Value, 3) = "200" 那么 我.解除保护 c.锁定 = True 我保护 万一 万一 下一个 万一 子目录结束
这将锁定以“200”开头的单元格,而其他单元格保持解锁状态。