我们看代码:
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 如果是多个计算结果该如何返回呢?