本帖最后由 盗梦 于 2015-4-11 11:45 编辑
1.可以通过OLE对excel.application操作,这个方法论坛有,大家可自行搜索一下, 如下面的示例
Excel中sheet相对应的VBA对象就是Worksheet。一个Worksheet对象,就代表了一个excel sheet。 VBA中,即可以取得当前Excel的sheet,也可以别Excel的sheet。 Worsheet的取得,通过Application对象,或者Workbook对象,Worksheets属性来取得。 格式 012 | Dim sheet As Worksheet Set sheet = Application.Worksheets(index) |
上面的代码,取得现在使用中的Excel的所有sheet中的某个。如果想取得所有Excel中的某个sheet。如下代码 012 | Dim sheet As Worksheet Set sheet = Worksheets(index) |
2.直接用ADO来获取,更方便 更快。
如果没有安装excel
xls = "C:\Users\root\Desktop\test.xls"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & xls & ";Extended Properties=""Excel 8.0;"";"
Set AdoCnn = CreateObject("ADODB.Connection")
AdoCnn.Open strConnect
Set rs = AdoCnn.OpenSchema(20)
Do Until rs.EOF
msgbox rs.Fields("table_name")
rs.MoveNext
Loop
AdoCnn.Close
不过使用 ado有个小问题是会 把名字中的点.替换为#,如果结果中出现#则无法得知确切名称
另取到的工作表名后面可能会有一个$号,要用代码处理一下
其它可能的问题
测试发现的几个小问题:
1、得到的列表没有按照原来的顺序,被排序了。
2、行尾多了$符号。
3、有空格的sheet的行首和行尾还被加了单引号。
|