OA办公软件与PDF文件联系紧密,PDF格式的文件也是办公人员必须掌握的!  设为首页 加入收藏夹 我来推荐 
您的位置:首页 > OA办公软件应用技巧 > EXCEL应用技巧
EXCEL应用技巧
如何按条件拆分Excel单元格中的数字
日期:2009-07-31 23:13:26 人气: 标签:

在Excel中,单元格不能拆分,只能进行单元格合并。形如Word中拆分单元格,在Excel中通过合并单元格,也可以达到同样的效果。

比如:把一个单元格拆分成两行的效果。
操作:
选中A1:A2单元格区域,单击“格式”工具栏上的“合并及居中”按钮,把A1、A2两个单元格合并成了一个单元格(称A1单元格)。而此时合并而成的单元格A1与单元格B1、B2就构成了把一个单元格(A1)拆分成了两行(B1、B2单元格)的效果。选中合并的单元格,依次单击“格式”菜单→“单元格”→“对齐”选项卡,单击移除“合并单元格”前的“√”。

如何按一定的条件拆分Excel表格中两个单元格中的数字呢?比如:Excel工作表的A1单元格和B1单元格中有两个数字,这两个数字有一部分相同,现在要找出其中相同的数字并写入单元格C1,找出A1中有而B1中没有的数字并写入单元格D1,找出B1中有而A1中没有的数字并写入单元格E1。
如下面的工作表图片:
 
我不知道给出的数字是否都是按这样的规律,即第一个原始数据的后面几位数与第二个原始数据的前面几位数相同。如果是这个规律的话,则可以就这个具体的例子给出下面的代码来实现,代码很简单,只是运用了几个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还有一个数组函数(Split函数)。 如果要将其变为通用的,则可将上述代码转化为自定义函数,并用相对量代替代码中的硬编码。 两个单元格中的数字如果不是按上面提到的规律,则可能两个单元格中的数字中间部分相同,而其它部分不同;或者一个单元格中的数字结尾部分和另一个单元格中的数字的中间部分相同;等等。
共有条评论信息评论信息
栏目分类

站点说明 | 站点导航 | 站点公告 |
OAPDF.COM版权所有 2009 V1.1