Можно ли искать, затем читать в определенных значениях из файла Excel, используя Access VBA?
-
21-12-2019 - |
Вопрос
Я должен был прочитать значения из файла 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
.