vba编程,单元格内超出的字数自动跳转到下一单元格

qq_44988928 2019-04-28 09:23:36
想让单元格内只能输入十个字,但超出的字数转到下一单元格
...全文
342 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
milaoshu1020 2019-04-28
  • 打赏
  • 举报
回复
代码:

Private mblnUpdating As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If mblnUpdating Then
Exit Sub
End If

mblnUpdating = True

Dim strContent As String
strContent = Target.Text

Dim strTemp As String
For i = 1 To Len(strContent)
strTemp = strTemp & Mid(strContent, i, 1)

If i Mod 10 = 0 Then
SetCellValue Target.Row, Target.Column + (i \ 10) - 1, strTemp
strTemp = ""
End If
Next
If strTemp <> "" Then
SetCellValue Target.Row, Target.Column + ((i - 1) \ 10), strTemp
End If

mblnUpdating = False
End Sub

Private Sub SetCellValue(ByVal intRow As Integer, ByVal intColumn As Integer, ByVal strValue As String)
Dim objRange As Range
Set objRange = Cells(intRow, intColumn)
objRange.NumberFormatLocal = "@"
objRange = strValue
End Sub

运行示例:


下载地址:
链接:https://pan.baidu.com/s/1WB_W0ph6-JTUcy6KQ3EXBQ
提取码:drtk
采购同事遇到新的问题了,他来找到我,需要我给他设计一个,采购进度管理的表格,要求是他每次录入完或者修改完数据后,自动把采购完成的项目下移动到最后,让那些还没采购完成的项目始终排在最上面的行。这样他可以方便他的日常采购进度的追踪。 问题既然提出来了,我就要尽最大的努力来帮助同事。 1.首先我认为要自动把采购完成的项目下移到最后的话,其实不怎么科学,应该是把采购完成的项目移动到最上面才是科学的,因为要录入新的项目,在最后插入是最方便的,在中间或者最上面插入比较麻烦。 2.我就想到排序的方法可以实现让采购完成的项目移动到最上面。 于是我查阅了一些vba实现execl的自动排序,最终编写好的代码如下(请下载相应的附件execl表格,这样比较容易理解): Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 9 And Target.Column <> 8 And Target.Column <> 7 Or Target.Count > 1 Then Exit Sub On Error Resume Next Range("A2:I999").Sort Key1:=Range("I1"), Order1:=xlAscending, Key2:=Range("H1") _ , Order2:=xlAscending, Key3:=Range("G1") _ , Order3:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _ xlSortNormal, DataOption2:=xlSortNormal End Sub ps:在设计过程中,还进行了进一步的改进,例如:采购进度其实排序关键字段不是只有一个关键字段,而牵涉到3个之多。当然第一关键字还是采购完成日期,后面2个排序关键字段也是能起到追踪进度的作用的。另还加入了数据有效性的设计,让采购进度录入更方便,规范。
1 Excel简介 6 1.1 Excel界面简介 7 1.2 输入和编辑数据 9 1.2.1 选定操作区域 9 1.2.2 定位的使用 10 1.2.3 复制、移动和删除 10 1.2.4 撤消和恢复 11 1.2.5 查找和替换 11 1.2.6 在单元格中输入数据 12 1.2.7 其他填充方式 14 1.2.8 简单的计算 15 1.2.9 相对引用和绝对引用 15 1.2.10 名称的使用 16 1.3 添加、删除单元格、行和列 17 1.4 改变列宽和行高 18 1.5 设置工作表的格式 19 1.5.1 单元格的格式设置 19 1.5.2 数据表的美化 19 1.5.3 样式的使用和设置 20 1.5.4 格式的复制和删除 21 1.5.5 条件格式的设置 21 1.5.6 隐藏行和列 22 1.5.7 拼音的设置 22 1.5.8 自动套用格式 23 1.6 改变字体 23 1.7 设置页面属性、预览和打印 24 1.7.1 打印预览 24 1.7.2 页面设置 24 1.7.3 设置打印区域 29 1.7.4 打印选项 30 2 Excel的自定义功能 30 2.1 启动选项 31 2.2 设置Excel选项 31 2.3 自定义屏幕 32 2.3.1 调色板的使用 33 2.3.2 使用全屏视图 34 2.3.3 储存当前工作簿中的视图 34 2.4 录制和使用宏 35 2.4.1 定义宏的键盘快捷键 35 2.5 保存自定义工具栏的布局 36 2.5.1 创建常规自定义工具栏 36 3 EXCEL先进的浏览和选择功能 37 3.1 移动浏览 37 3.1.1 知道所处的位置 37 3.1.2 键盘浏览 38 3.1.3 跳转到定义名称 38 3.1.4 用滚动条浏览 39 3.2 选择的技巧 39 3.2.1 Shift键的使用 39 3.2.2 Ctrl键的使用 39 3.2.3 在选区内浏览 40 3.2.4 进行选择的快捷键 40 3.3 数据输入 40 3.3.1 正确输入 41 3.3.2 从邻近的单元格复制数据 41 3.3.3 充分利用“记忆式键入”功能 41 3.3.4 自动填充 42 4 Excel先进的浏览和选择功能 43 4.1 重新整理信息 43 4.2 格式化 43 4.3 添加批注 43 4.3.1 添加批注 43 4.3.2 隐藏批注 43 4.3.3 修改批注格式 44 4.3.4 删除批注 44 5 公式和函数 44 5.1 应用公式中的函数 44 5.1.1 SUM函数的使用 44 5.1.2 AVERAGE函数的使用 44 5.1.3 MAX和MIN函数的使用 45 5.1.4 SUMIF函数的使用 45 5.1.5 SUBTOAL函数的使用 45 5.1.6 MODE函数的使用 46 5.1.7 INT函数和TRUNC函数的使用 46 5.1.8 IF函数的使用 47 5.2 公式的技巧和窍门 47 5.2.1 创建公式的方法 47 5.2.2 公式的命名的方法 48 5.2.3 隐藏公式 48 5.2.4 时间和日期的使用 48 5.2.5 数组公式的使用 49 6 图表 49 6.1 创建图表 49 6.1.1 使用[图表]工具栏创建简单的图表 49 6.1.2 使用图表向导创建图表 49 6.2 编辑图表 50 6.2.1 更改图表类型 50 6.2.2 更改数据系列产生方式 50 6.2.3 添加或删除数据系列 51 6.2.4 设置各种图表选项 52 6.2.5 向图表中添加文本 52 6.3 图表类型 52 6.3.1 柱形图和条形图 52 6.3.2 折线图 53 6.3.3 面积图 53 6.3.4 饼图和圆环图 53 6.3.5 XY散点图 53 6.3.6 三维图 53 6.3.7 自定义图 53 6.4 设置图表格式 54 6.4.1 设置图表区和绘图区格式 54 6.4.2 设置图表数据系列的次序 54 6.4.3 格式化图例 54 6.5 使用趋势线 54 6.6 使用误差线 55 7 分析数据 55 7.1 筛选数据 55 7.1.1 自动筛选 56 7.1.2 创建自定义筛选 56 7.1.3 使用高级筛选 57 7.1.4 在共享工作簿中保存筛选 57 7.1.5 操作数据清单的便捷函数 58 7.2 数据透视表和数据透视图 58 7.2.1 创建数据透视表 58 7.2.2 设计字段 59 7.2.3 透视数据 60 7.2.4 使用数据透视表工具栏和快捷菜单 60 7.2.5 调整数据透视表 60 7.2.6 创建数据透视图 63 7.3 共享工作薄 64 8 调试工作表 64 8.1 使用“公式审核”工具栏 64 8.1.1 从属关系 64 8.1.2 使用“公式审核”工具栏进行追踪 64 8.1.3 只想查看引用单元格? 65 8.1.4 快捷键 65 8.2 单元格错误 65 8.2.1 一般单元格错误信息的含义 65 8.2.2 追踪错误 65 8.3 单元格错误 66 9 Excel的编程功能简介 66

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧