此种方法可以在后台直接从from_xls文件中读取想要的数据,而不要打开

2020.09.19 测试通过。

Private Sub testsub()Dim i%, ra%,filename$,aa$
Dim from_xls As New Excel.Application
filename="d:\test.xslx" '要读取文件的路径
aa = "价格库" '要读取文件中的指定表名
from_xls.Workbooks.Open "d:\test.xlsx"
ra = from_xls.Worksheets(aa).Range("D65536").End(xlUp).Row  '这样操作等同于from_xls就是vba中的filename的那个字符。   
   For i = 4 To ra    
     resdata =from_xls.Worksheets(aa).Range("e" & i) & "测试读取结果"   
  Next  
exlA.Quit  '操作完成后退出,如果只是读取那么就直接quit,如果存在写入保存的话,exlA.Quit ,save:=true。
Set exlA = Nothing
End Sub

这里有一个需要注意的地方,就是通过此方式来获取filename表格中的数据时候,用cells方式会出现错误,需要用range方式,如:

str1=from_xls.Worksheets(aa).Range("e" & i) & from_xls.Worksheets(aa).Range("f" & i)

而如果用cell方式则会提示错误,如:

str1=from_xls.Worksheets(aa).cells(i,"e") & from_xls.Worksheets(aa).Range(i,"f")