¿Es posible buscar, luego leer en valores específicos de un archivo Excel usando Access VBA?

StackOverflow https://stackoverflow.com//questions/25044194

Pregunta

He tenido que leer en valores de un archivo de Excel antes, pero fue un archivo separado por Excel Coma. Esta vez tengo un archivo de Excel con un gráfico y dos tablas. Solo quiero leer en los valores en una columna de una tabla específica. Aquí hay una imagen del diseño del archivo Excel. Me gustaría leer en la columna marcada "cantidad" en la mesa inferior marcada por una flecha roja. No quiero leer en el total de todas las cantidades debajo.

ingrese la descripción de la imagen aquí

Cuando estaba leyendo en todos los valores de un archivo separado por Excel Comma, utilicé este código. Las inicializaciones y la lógica innecesaria se han eliminado solo para mostrar el código relevante a esta pregunta.

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

¿Hay algo similar que pueda hacer para el archivo de Excel, actualmente estoy tratando de importar? ¿Hay alguna manera de importar solo una columna?

Actualización: los archivos de Excel siempre están siempre en el mismo diseño que en I Siempre estoy recuperando la información de las ranuras 29G-34G.

¿Fue útil?

Solución

Necesitará ajustar la ruta del archivo y el nombre de la hoja, pero algo así debería funcionar:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top