如何对excel的数据运用VB程序计算,最后在excel显示

 我来答
神木月樱
推荐于2016-04-27 · TA获得超过856个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:128万
展开全部
呵呵,太简单,方法也很多。举个最简单的例子:
1、直接在VB中生成Excel.Application对象,可以隐藏打开也可以显示打开
2、然后再通过这个excel对象,打开相应的文档或者获取相应需要计算的数据,
3、在excel中调用VBA进行计算;
4、在excel中显示出计算结果。

给你一段我的代码,代码在excel200/XP/2003之下都可以正常运行,2003之后,我没试过,但理论上应该也没有问题

'下例启动excel的一个实例。
Public Sub exc()
Dim exc
Set exc = CreateObject("Excel.Application")
'上句,启动了一个excel对象
exc.Workbooks.Add '(Open "G:\学习vba的文件\excel数据.xls")
'上句,利用excel的子对象Workbooks的open方法,打开G盘上的一个 xls文件
exc.Visible = True
'上句,是将此对象显示出来。如果想在后台运行而不让人知道则设为False

‘’‘’‘’‘’‘’‘’‘‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
‘这个部分,放置你要进行的计算等操作的代码,如果刚才你用的是False,是让程序在后台执行计算的话,那么计算完成之后,你可以再次exc.Visible = True,将计算的结果显示出来
’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’

Set exc = Nothing
‘上句,关闭excel
'或者也可以使用exc.Quit来关闭excel
'
End Sub

不过,上面代码在实际使用的时候,有个不大不小的麻烦:如果用户在运行VB所生成的程序之前,先已经启动了一个excel,则上面代码会再生成一个excel对象,这很容易在实际操作的时候出现问题,所以,可以还需要像下面这样处理一下:

Public Sub exc()
Dim ExcelApp As Excel.Application
0 On Error Resume Next '忽略错误
Set ExcelApp=GetObject(, "Excel.Application") '查找是否存在正在运行的Excel程序
If Err.Number <> 0 Then '如果 Excel 没有运行则
Set ExcelApp= CreateObject("Excel.Application") '建立并运行它
End If
Err.Clear '清除发生错误的 Err 对象
On Error GoTo 0 '保留普通错误进程

‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
以下是就操作这个excel对象来达成你的目的的代码了
‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
End Sub

至于如何在启动excel之后进行计算的代码,由于楼主你没有给出实例,不知道你要执行什么样的计算,这里就无法给出你代码了。不过,通常的计算,你完全可以通过在excel中手工将计算步骤操作一遍,同时利用“录制宏”的功能,将计算过程的代码录下来,然后查看宏代码,就得到你想要的代码了。再稍稍改一下,就可以复制到上面的代码中间正常使用了。。

呵呵~收工~~~~
bunidewode
2010-11-19 · TA获得超过4880个赞
知道大有可为答主
回答量:4737
采纳率:0%
帮助的人:3706万
展开全部
发个例子上来看,VBA就是干这些活的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式