É possível procurar e, em seguida, para ler em valores específicos de um arquivo do Excel utilizando VBA do Access?

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

Pergunta

Eu tive que ler em valores a partir de um arquivo do excel antes, mas era um Excel arquivo separado por vírgulas.Desta vez eu tenho um arquivo excel com um gráfico e duas tabelas.Eu só quero ler os valores em uma coluna de uma tabela específica.Aqui está uma imagem do layout do arquivo do excel.Eu gostaria de ler a coluna marcada "Quantidade" na parte inferior da tabela marcado por uma seta vermelha.Eu não quero ler no total de todos os valores abaixo.

enter image description here

Quando eu estava lendo todos os valores de um excel arquivo separado por vírgulas eu usei este código.Inicializações e desnecessária a lógica de ter sido removido para mostrar apenas as pertinentes ao código para esta pergunta.

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

Há algo de semelhante que eu possa fazer para o arquivo do excel atualmente, estou tentando importar?Existe uma maneira para importar apenas que uma coluna?

ATUALIZAÇÃO:os arquivos do excel são sempre no mesmo formato em que eu estou sempre obter informações a partir de slots de 29G-34 G.

Foi útil?

Solução

Você vai precisar de ajustar o caminho do ficheiro e o nome da folha, mas algo como isso deve 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top