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

现欲利用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
End If
Next i
If subStr <> "" Then Cells(y, x).Value = subStr
Next m
End Sub

二、楼主所提的第2个问题,Excel早就考虑到了,所以Excel提供了一个叫个人宏工作簿的文件用来存放自己要用的宏!

可以通过录制宏到“个人宏工作簿”来让Excel自动建立“个人宏工作簿”,如果没有的话。然后,你按Alt+F8选中你所录制的宏,点单步执行,即可在宏编辑器中看到个人宏工作簿中的宏,此时你可把自己的代码放进去,或者删除自己胡乱录制的宏。

Good Luck!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-11
将所有数据复制,粘贴到“记事本”然后保存为一个文档

然后在EXCEL菜单[数据]-[导入外部数据]-[导入数据]

然后按提示操作即可,分栏时选择以空格分栏

OK?
第2个回答  2009-12-11
两者都可以,
VBA时你可单独写好后存成一个文件,原后每次打开这个文件,通过这个文件中的代码去操作你要处理的文件。单独写好后存成一个文件也可看作是一个EXCEL程序