Excel输入的字数不能超过指定值

时间:2024-11-01 11:23:27

1、Excel表格上依次点击【开发工具】,【Visual Basic】打开VBA编辑器,也可以使用【Alt+F11】组合键打开VBA编辑器。

Excel输入的字数不能超过指定值

2、在VBA编辑器左侧的“VBA工程项目”里面双击“Sheet1”,然后在代码框里面输入以下VBA程序代码:Pr足毂忍珩ivate Sub Worksheet_Change(ByVal Target As Range) '当更改单元格时发生Dim j1, j2, j3On Error Resume Next '忽略运行过程中可能出现的错误Application.EnableEvents = False '开启代码只执行一次Set MySheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表j1 = Target.Row '追踪改变单元格所在的行j2 = Target.Column '追踪改变单元格所在的列j3 = Len(Target) '获取改变单元格里面的字符长度If j2 = 2 And Target <> "" Then '如果改变的单元格在第2列且改变的单元格不为空白,则MySheet1.Cells(j1, j2 + 1) = j3 '把字符长度填入同一行的第3列单元格If j3 > 6 Then '如果改变的单元格字符数超过6个,则 MySheet1.Cells(j1, j2 + 1).Interior.Color = RGB(255, 0, 0) '单元格填充的颜色为红色 Target.Select '选择“追踪改变的单元格” Application.SendKeys "{F2}" '双击选择的单元格(键入)Else MySheet1.Cells(j1, j2 + 1).Interior.Pattern = xlNone '填充的颜色为“无填充”End IfEnd IfIf j2 = 2 And Target = "" Then '如果改变的单元格在第2列且改变的单元格为空白,则MySheet1.Cells(j1, j2 + 1) = "" '同一行的第3列单元格清空MySheet1.Cells(j1, j2 + 1).Interior.Pattern = xlNone '填充的颜色为“无填充”End IfApplication.EnableEvents = True '关闭代码只执行一次End Sub

Excel输入的字数不能超过指定值

3、如果在左侧没有看到“VBA工程项目”,则依次点击【视图】、【工程资源管理器】,或者使用【Ctrl+R】组合键调出。(如果已有,则忽略此步)

Excel输入的字数不能超过指定值

4、回到“Sheet1”工作表界面,在B列的单元格里面输入内容,输入完内容后按下回车键。如果输入的字符长度不超过限定值,则跳到下一单元格;如果输入的字符长度超过限定值,则再次键入此单元格,同时C列对应的单元格填充成红色。

Excel输入的字数不能超过指定值

5、如果想保留B列单元格的字符长度,则在输入完内容之后按下键盘上面的“Esc”键,再按回车键,这样就保留了这个单元格的字符长度。

Excel输入的字数不能超过指定值

6、思路解读:为何不在单元格键入状态下获取其动态字符长度并进行限制。单元格在键入的状态下,其VBA程序没有执行(可以使用下方引用的“Excel表格呼鳏魇杰上面做动态时钟显示”程序做实验),因此没法使用循环程序来获取键入状态单元格的字符长度。此时想到的也就是在单元格改变完成之后再去判断,如果条件不满足,则重新键入,再修改,所以说是VBA程序基本满足要求。

Excel输入的字数不能超过指定值
Excel输入的字数不能超过指定值
© 手抄报圈