如何对excel的数据运用VB程序计算,最后在excel显示 要在vb6.程序中调用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中手工将计算步骤操作一遍,同时利用“录制宏”的功能,将计算过程的代码录下来,然后查看宏代码,就得到你想要的代码了。再稍稍改一下,就可以复制到上面的代码中间正常使用了。。

呵呵~收工~~~~

发个例子上来看,VBA就是干这些活的

如何使用VB编程语言对Excel进行数据关联并进行Excel表中的数据累加统计计算和显示指定数据~

你的表达可真是^&^&%^%$&$&*(
估计没人看得懂你要做什么。

给楼主提个建议:以后尽量把表描述清楚些。比如标题几行、列包括哪些等等。。
Private Sub Command1_Click()
Dim xlsApp As Object, xlsWb As Object, xlsWs As Object '定义Excel对象
Set xlsApp = CreateObject("Excel.Application") '建立excel对象
Set xlsWb = xlsApp.Workbooks.Open("d:\Book1.xls") '要打开的文档路径。请用带全路径的文件名替换d:\Book1.xls。当然,你也可以用文件浏览获取文件路径。
Set xlsWs = xlsWb.Worksheets(1) '选工作表。多张表时通过序号指定不同的表
xlsWs.Activate '选定的工作表获得焦点
xlsApp.Visible = False '隐藏
Dim iRowCnt As Integer '行数
Dim iColCnt As Integer '列数
Dim m As Integer '当前行数
Dim n As Integer '当前列数
Dim zf As Integer '总分
iRowCnt = xlsWs.UsedRange.Rows.Count '总行数
iColCnt = xlsWs.UsedRange.Columns.Count '总列数
If iRowCnt > 1 Then '用实际的标题行数替换数字1
With xlsWs
nCount = 2 '把数字2用姓名所在的列数替换
m = 2 '用实际的标题行数+1替换数字2
Do While m <= iRowCnt
strCardNo = Trim(.cells(nCount, 2)) '用实际的标题行数+1替换数字2
'这里根据第二列数据为空判断记录结束
If Len(strCardNo) = 0 Then
Exit Do
Else
zf = 0 '循环前把总分归零
For n = 3 To iColCnt + 1 '把数字3用姓名所在的列数+1替换
If n = iColCnt + 1 Then
.cells(m, n) = zf
Else
zf = zf + .cells(m, n)
End If
Next n
m = m + 1
End If
Loop
End With
MsgBox "恭喜~~请求的操作已完成!", 64 + 0 + 4096, "提示"
Else
MsgBox "由于你选定的工作表没有数据,操作被终止!", 64 + 0 + 4096, "提示"
End If
xlsWb.Save
xlsWb.Close '关闭excel文件
xlsApp.Quit '退出excel
Set xlsWs = Nothing
Set xlsWb = Nothing
Set xlsApp = Nothing
End Sub

如何将EXCEL中的某行或某列数据读入VB中并且要对这些数据进行某些运算...
答:注意: 在工程中运用 Excel 对象模型,必须引用 Excel Object Library 工程--> 引用 加入 Excel Object Library 在 VB 中操作 EXCEL 对象,如为可见,在操作中手式关闭 EXCEL ,而 VB 程序无法知道,如果此时使用 EXCEL 对象,则VB程序会产 生错误。形成 VB 程序无法完全控制 EXCEL 的状况,使得...

vb 能操作 wps 和excel
答:'运行EXCEL关闭宏 4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得...

在excel中如何用VB实现以下内容
答:sub main()if cells(1,"A").value="中国" then cells(1,"B")="111"if cells(1,"A").value="美国" then cells(1,"B")="1123"end sub 以此为例,在Excel中调用VBA程序的操作步骤如下(Excel2007为例):1.选择”开发工具“选项卡,点击”Visual Basic“(或者用快捷键Alt+F11)2....

如何将excel数据引入vb二维数组中?我是外行人完全不懂,求具体、可执行...
答:用数据库的查询方式 读取出来放入到 二维数组中 Dim cnn2 As New ADODB.Connection Dim rs2 As New ADODB.Recordset cnn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Text1.Text & ";Extended Properties='Excel 8.0;HDR=Yes'"rs2.Open "Select ...

vb6中如何往excel里写数据
答:'比如这样,把当前打开的excel工作表的A1的值改成34324 set xlsobject = getobject( ,“excel.application” )Set Sh = Application.ActiveSheet Sh.Range("a1") = 34324

VB采用ADO方式操作EXCEL表格的操作步骤
答:但 Microsoft.Jet.OLEDB.4.0 方式支持!adoConnection.Execute "insert into [sheet1$](姓名) values(3)"adoRecordset.AddNew Array("姓名", "性别", "年龄", "地址"), Array(1, 2, 3, 4)以上就是今天分享的“VB采用ADO方式操作EXCEL表格的操作步骤”,希望大家有所收获。

VB访问Excel的几种方式
答:本文讨论VB对Excel访问的三种方式:1、直接调用Excel应用程序对象进行访问;2、通过数据访问对象(DataAccessObject,简称DAO)访问Excel;3、通过ActiveX数据对象(ActiveXDataObject,简称ADO)访问Excel。为方便讨论,设有“c:\mydocument\book1.xls”Excel文档,其中有“姓名”、“语文”等字段和若干条记录...

在EXCEL表中如何采用VB程序实现多列转成多行
答:在表1插入一个按钮控件,然后按ALT+F11进入代码编辑,把下面的代码复制进去后,点击按键就可实现。Private Sub CommandButton1_Click() Dim mc Dim hh, i, lsi, sj1, hh1, hh2 As Integer Dim MyRange As Range Sheets(2).UsedRange.Clear Sheets(2).Cells(1, 1).Value = ...

如何用VB读取和写入EXCEL表格
答:AccPath = "d:/Database/data.MDB" '''这里设置数据库路径 Con.Open ProvidSr & AccPath End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)Set Con = Nothing End Sub 好了 运行就可以了 说的的excel中vba的方法 如果要做成vb软件的话,在vb中的步骤也...

用VB怎样对两个表格中的数据进行对比?
答:有关“开发工具”选项卡的打开方法请参考栏目二部分。5.右击“Microsoft Excel对象”,从弹出的右键菜单中选择“插入”->“模块”项。6.接着输入如图所示的代码:Sub 数据对比()Dim i As Integer Dim j As Integer For i = 3 To 12 '员工基础报表数据范围 For j = 3 To 11 '员工待遇...