我必须以前从Excel文件中读取值,但它是一个Excel逗号分隔文件。这次我有一个具有图形和两个表的Excel文件。我只想在特定表的一列中的值中读取。这是Excel文件布局的图片。我想在标有红色箭头标记的底部表中读取标记为“金额”的列。我不想在它下面的所有金额的总数中阅读。

当我从Excel逗号分隔文件中读取所有值时,我使用此代码。初始化和不必要的逻辑已被删除为仅显示此问题的相关代码。

Set objconnection = CreateObject("ADODB.connection")
Set objRecordset = CreateObject("ADODB.recordset")
objconnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strpathtotextfile & ";Extended Properties=""Text;HDR=YES;FMT=Delimited"""
objRecordset.Open "SELECT * FROM [" & ThisFileName & "]", objconnection, adOpenStatic, adLockOptimistic, adCmdText 'select all text lines from the file

Do While Not objRecordset.EOF 'read lines until end of file

'Clear out all the local objects so prior values aren't left there'
    SampleName = ""
    DateTimeAcquired = ""
    Analyte = ""
    Concentration = ""

    'reads in each value according to column name and save to variable'
     SampleName = objRecordset.Fields("Sample Name").Value
     DateTimeAcquired = objRecordset.Fields("Date and Time Acquired").Value
     Analyte = objRecordset.Fields("Element Full Name").Value
     Concentration = objRecordset.Fields("Concentration").Value
   'other logic'
   objRecordset.MoveNext
Loop
.

是否有类似我可以为我目前试图导入的Excel文件的东西?有没有办法只进口那一列?

更新:Excel文件始终处于相同的布局,如我始终从插槽29G-34G中检索信息。

有帮助吗?

解决方案

您需要调整文件路径和工作表名,但是这样的内容应该工作:

Sub Tester()

    Dim cn As New ADODB.Connection
    Dim rs As ADODB.Recordset

    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
            "Data Source=C:\Users\thisuser\Desktop\test.xlsx;" & _
            "Extended Properties=""Excel 12.0 Xml;HDR=NO"""

    Set rs = cn.Execute("select * from [Sheet1$G29:G34]")
    Do While Not rs.EOF
        Debug.Print rs(0).Value
        rs.MoveNext
    Loop

End Sub
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top