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

2025-10-31 22:15:21

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

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

2、在VBA编辑器左侧的“VBA工程项目”里面双击“Sheet1”,然后在代码框里面输入以下VBA程序代码:

Private Sub Worksheet_Change(ByVal Target As Range) '当更改单元格时发生

Dim j1, j2, j3

On 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 If

End If

If j2 = 2 And Target = "" Then    '如果改变的单元格在第2列且改变的单元格为空白,则

 MySheet1.Cells(j1, j2 + 1) = ""  '同一行的第3列单元格清空

 MySheet1.Cells(j1, j2 + 1).Interior.Pattern = xlNone  '填充的颜色为“无填充”

End If

Application.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输入的字数不能超过指定值

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢