欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Excel表格向上,中,向下取整函数
Excel表格提高工作效率的隐藏实用技巧
excel中保存Microsoft Query查询和数据库密码
手把手教你用“Excel表格自动求积公式”
Excel提示“#DIV/0!”错误公式的解决方案
excel不能自动求和的解决方法
游戏优化大师今日头条怎么删除?
迅雷快传会员的下载速度有多快
迅雷快传已用空间超总空间怎么办
Excel2007新增AVERAGEIF函数使用和介绍
Excel表格中vba宏帮助你按条件拆分两个单元格中的数字
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

  Excel工作表的A1单元格和B1单元格中有两个数字,这两个数字有一部分相同,现在要找出其中相同的数字并写入单元格C1,找出A1中有而B1中没有的数字并写入单元格D1,找出B1中有而A1中没有的数字并写入单元格E1。

  如下面的工作表图片:

Excel表格中vba宏帮助你按条件拆分两个单元格中的数字 三联

  我不知道给出的数字是否都是按这样的规律,即第一个原始数据的后面几位数与第二个原始数据的前面几位数相同。如果是这个规律的话,则可以就这个具体的例子给出下面的代码来实现:

  Sub SeparateNumber()

  Dim strFirst As String

  Dim strResult As String

  Dim StartNum As Integer

  Dim EndNum As String

  Dim i As Integer, j As Integer

  strFirst = Left(Range(”B1″), 1)

  StartNum = InStr(1, Range(”A1″), strFirst)

  j = 1

  For i = StartNum To Len(Range(”A1″))

  EndNum = Mid(Range(”A1″), i, 1)

  If EndNum = Left(Range(”B1″), j) Then

  j = j + 1

  End If

  Next i

  If j > 1 Then

  strResult = Mid(Range(”A1″), StartNum, i - 1)

  End If

  ‘单元格C1中的数据

  Range(”C1″).Value = strResult

  ‘单元格D1中的数据

  Range(”D1″).Value = Left(Range(”A1″), StartNum - 1)

  ‘单元格E1中的数据

  Range(”E1″).Value = Right(Range(”B1″), Len(Range(”B1″)) - j)

  End Sub

  代码很简单,只是运用了几个VBA函数。

  讨论:

  其实代码可以进一步简化,因为VBA还有一个数组函数(Split函数)。

  如果要将其变为通用的,则可将上述代码转化为自定义函数,并用相对量代替代码中的硬编码。

  两个单元格中的数字如果不是按上面提到的规律,则可能两个单元格中的数字中间部分相同,而其它部分不同;或者一个单元格中的数字结尾部分和另一个单元格中的数字的中间部分相同;等等。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站