如何在VB中编程对EXCEL中数据进行分列

来源:百度知道 编辑:UC知道 时间:2024/06/02 08:50:56
现欲利用VB编写一小计算软件,主要是利用EXCEL中的数据进行计算,
问题如下:
(1)想要达到的效果:
测试数据导入EXCEL表格时为第一列每一个单元个中有三组数,
例如:150 3 5
同时存在于A1,我想把三组数分成三列即A1:150 B1:3 C1:5;
(2)问题:我知道EXCEL是有分列功能,也可以编辑宏,但是每次数据导入都要覆
盖此EXCEL表格,宏就没了,不知道如何将宏持续存在并可以在VB中调用?;
(3)问题:是否有可能通过VB直接编程将数据分列?

麻烦各位了,谢谢!

一、对于第1、3两个问题,我写的这个宏可以完美解决,代码如下:

Sub 分列()
'以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理
Dim m As Range, tmpStr As String, s As String
Dim x As Integer, y As Integer, subStr As String
If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
vbYesNoCancel + vbQuestion) <> vbYes Then Exit Sub
For Each m In Selection
x = m.Column()
y = m.Row()
tmpStr = m.Value
subStr = ""
For i = 1 To Len(tmpStr)
s = Mid(tmpStr, i, 1)
If s = " " And subStr = "" Then '连续的空格,忽略
ElseIf s = " " And subStr <> " " Then '空格表示子串结束
Cells(y, x).Value = subStr
subStr = ""
x = x + 1
ElseIf s <> " " Then '新子串开始或进行中
subStr = subStr & s