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

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

麻烦各位了,谢谢!
展开
 我来答
chenjin99
2009-12-11 · TA获得超过7061个赞
知道大有可为答主
回答量:1304
采纳率:100%
帮助的人:1884万
展开全部
一、对于第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!
朱仕平
2009-12-11 · 知道合伙人软件行家
朱仕平
知道合伙人软件行家
采纳数:7872 获赞数:29186
15年质量管理经验, 5年EXCEL培训经验, 目前专职EXCEL网络教育和企业培训

向TA提问 私信TA
展开全部
将所有数据复制,粘贴到“记事本”然后保存为一个文档

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

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

OK?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cy20090503
2009-12-11 · TA获得超过581个赞
知道小有建树答主
回答量:301
采纳率:100%
帮助的人:182万
展开全部
两者都可以,
VBA时你可单独写好后存成一个文件,原后每次打开这个文件,通过这个文件中的代码去操作你要处理的文件。单独写好后存成一个文件也可看作是一个EXCEL程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式