Access VBAを使用してExcelファイルから特定の値で読み取ることを検索することは可能ですか?
-
21-12-2019 - |
質問
私は以前にExcelファイルから値を読み込まなければなりませんでしたが、Excelコンマ区切りファイルでした。今回は、グラフと2つのテーブルを持つExcelファイルがあります。特定のテーブルの1列の値で読みたいだけです。これは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ファイルに対してできることが似たものはありますか?その1つの列のみをインポートする方法はありますか?
update: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