Access VBA를 사용하여 Excel 파일에서 특정 값을 검색 할 수 있습니까?
-
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
. 제휴하지 않습니다 StackOverflow