您当前的位置: 首页 > 办公软件教程 > Excel教程 浏览
按条件拆分Excel表格两个单元格中的数字
发布时间:2014-07-28    点击率:次    来源:www.sytcke.com    作者:电脑技术学习网

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

  如下面的工作表图片:

  Question

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

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函数)。 如果要将其变为通用的,则可将上述代码转化为自定义函数,并用相对量代替代码中的硬编码。 两个单元格中的数字如果不是按上面提到的规律,则可能两个单元格中的数字中间部分相同,而其它部分不同;或者一个单元格中的数字结尾部分和另一个单元格中的数字的中间部分相同;等等。

  有兴趣的朋友可以继续研究。

发表留言
发表留言请先登录!
免责声明:本站发布的信息和评论纯属网民个人行为,并不代表本站立场,如发现有违法信息或侵权行为,请直接与本站管理员联系,我们将在收到您的信息后24小时内作出处理!