手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

按要求使用VBA批量修改数据量非常大的数字号码

时间:2024-10-26 01:06:16

1、请认真看下图,在A列,存在数据量非常多的一大堆编号!

按要求使用VBA批量修改数据量非常大的数字号码

2、上表,每个号码的长度共有11位,现在,我们要做的就是,每个号码前面的9位保持不变,后面的三位分别依次变为001、002、003等,我们该如何做呢?旌忭檀祉   也许部分网友可能会提出这样的解决方案,即,将前面两个的后三位变为001、002,之后使用填充功能不就行了吗?   这就犯了“兵家”大忌了,由于这些号码前九位不是连续的,使用填充功能将会改变前面九位的号码,就失去原来的意义了,所以,使用填充功能是不可能实现的,要不,本例就没有任何意义了!   针对诸如此类的问题,使用VBA最适合不过了!   以下为实现的方法!   首先,执行“视图”→“工具栏”→“控件工具箱”;弹出控件工具箱!

按要求使用VBA批量修改数据量非常大的数字号码

3、如上图,在Excel窗口中拖出一个按钮控件!   之后右键点击按钮控件,执行“属性”;

按要求使用VBA批量修改数据量非常大的数字号码

4、如上图,在相应位置修改按钮上面的文字为“批量修改”!   最后,左键双击按钮,打开按钮的“Microsoft Visual Basic”VBA代码编写窗口,在窗口中输入如下图的代码即可!

按要求使用VBA批量修改数据量非常大的数字号码

5、代码输好之后,点击“Microsoft Visual Basic”窗口的运行按钮即可!   返回到Excel窗口,点击按钮,即可实现命题想要的结果!   为方便大家的学习,下面贴出源代码: '以下为代码开始StartScanNum = 1 '扫描范围起始值EndScanNum = 50 '扫描范围终止值MyNum = "" '替换字符串AddNum = 0 '自增量!For m = StartScanNum To EndScanNum '按顺序检查A列号码 If Len(Worksheets(1).Cells(m, 1).Value) <> 0 Then '号码不为空 MyNum = Left(Trim(Worksheets(1).Cells(m, 1).Value), 8) '截取前面8个号码 AddNum = AddNum + 1 '自增量加1 If Len(AddNum) = 1 Then '不足十位的以两个0填充 MyNum = MyNum + "00" + Trim(AddNum) End If If Len(AddNum) = 2 Then '不足百位的以一个0填充 MyNum = MyNum + "0" + Trim(AddNum) End If Worksheets(1).Cells(m, 2).Value = MyNum '将截取并修改好的号码赋值给原来的单元格 End IfNext'代码结束

© 手抄报圈