利用ADO连接EXCEL,并进行数据运算

大家好,今日继续讲解VBA数据库解决方案的第34讲,这讲的内容是利用ADO连接EXCEL,并进行数据运算。为什么要讲解这讲的内容呢?因为我们在实际的工作中,往往需要的是连接上EXCEL后提取的数据并不是原始的数据所直接给出的,往往要进行一些简单的运算,而我们所关心的其实只是运算后的结果,不关心运算的过程。

那么,在使用ADO连接上EXCEL后,如何让数据参与运算并返回我们所需要的值呢?今日我们就来讲解这个内容。

实例: 15年.xlsx 文件中的第二页中有销售数量和销售单价两个数值,我们要提取的值是两者的乘积,如下截图

我们看代码:

Sub mynzexcels_3()

'第34讲,利用ADO,实现EXCEL工作表某两列数据的数据计算

Dim cnADO, rsADO As Object

Dim strPath, strTable, strSQL As String

Set cnADO = CreateObject("ADODB.Connection")

strPath = ThisWorkbook.Path & "\" & "15年.xlsx"

strTable = "[sheet2$a2:b2]"

'建立连接,提取A2B2单元格的数据

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath

strSQL = "select F1*F2 from " & strTable

Cells.Clear

[a1].CopyFromRecordset cnADO.Execute(strSQL)

cnADO.Close

Set cnADO = Nothing

End Sub

代码截图:

代码讲解:

1 strTable = "[sheet2$a2:b2]" 此处定义了数据表的范围为[sheet2] 工作表的A2到B2的单元格

2 strSQL = "select F1*F2 from " & strTable 此处直接定义了F1 和F2 相乘

3 [a1].CopyFromRecordset cnADO.Execute(strSQL) 最后将所得的值放在A1 单元格。

下面我们运行一下程序:

这样就实现了我们的目的,在连接EXCEL的同时进行数据的计算,并返回计算的结果。当然,我这里只是给出了一个最为简单的例子,在实际工作中实际问题要远远比这个要复杂,但只要你掌握到了基本的方法,是能够处理复杂问题的。

今日内容回向:

1 如何实现在连接EXCEL的同时实现数据的计算?

2 如果是多个计算结果该如何返回呢?

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();