如何对excel的数据运用VB程序计算,最后在excel显示
2个回答
展开全部
呵呵,太简单,方法也很多。举个最简单的例子:
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中手工将计算步骤操作一遍,同时利用“录制宏”的功能,将计算过程的代码录下来,然后查看宏代码,就得到你想要的代码了。再稍稍改一下,就可以复制到上面的代码中间正常使用了。。
呵呵~收工~~~~
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中手工将计算步骤操作一遍,同时利用“录制宏”的功能,将计算过程的代码录下来,然后查看宏代码,就得到你想要的代码了。再稍稍改一下,就可以复制到上面的代码中间正常使用了。。
呵呵~收工~~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询