vba按照某一列拆分成表(vba拆分单元格内容)

Excel工作表的单元格A1和单元格B1中有两个数字。这两个数字中有些是相同的。现在,找出相同的数字并将其写入C1单元格,找出A1中的数字而不是B1中的数字并将其写入D1单元格,找出B1中的数字而不是A1中的数字并将其写入E1单元格。

如下面的工作表图片:

vba按照某一列拆分成表(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函数)。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 86345@qq.com 举报,一经查实,本站将立刻删除。
(0)
上一篇 2022-04-12 15:50:03
下一篇 2022-04-12 16:00:04

猜你喜欢

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注