私は約75のExcelファイル(.xlsx)を持つフォルダを持っています。 Excelファイルには、すべて名前付きワークシートが5つあります(たとえば、SurveyData
,AmphibianSurveyObservationData
、BirdSurveyObservationData
、PlantObservationData
、およびWildSpeciesObservationData
)。残念ながら、Excelファイルにはワークシートのサブセットのみが存在することがあります(Excelファイル1つに5つのワークシートがあり、別のExcelファイルにはSurveyData
とAmphibianSurveyObservationData
のワークシートしかない)。複数のExcelファイルとワークシートをすべてのExcelファイルに同じシートがない場合にAccessにインポートする
これらのExcelファイルをすべてAccessにインポートし、各ワークシートの情報を別のテーブルに入れたいと思います。たとえば、すべてのExcelファイルのSurveyData
ワークシートのすべてのデータをSurveyData
というアクセステーブルに入れたいとします。私はこのVBAコードを見つけました(下記参照)、ワークシートがすべてExcelファイルに存在するとうまくいくように見えますが、1つのワークシートがないと、スクリプトは停止し、他のファイルのインポートを続行しません。ワークシートがExcelファイルに存在する場合にのみインポートする方法はありますか?それ以外の場合はインポートをスキップしますか?
Function ImportExcelFiles()
Dim strFile As String
DoCmd.SetWarnings False
' Set file directory for files to be imported
strPath = "D:\SpeciesData\MoELoadform\2015SpeciesDetectionLoadforms - Copy\"
' Tell it to import all Excel files from the file directory
strFile = Dir(strPath & "*.xls*")
' Start loop
Do While strFile <> ""
' Import file
DoCmd.TransferSpreadsheet transfertype:=acImport, tablename:="SurveyData", FileName:=strPath & strFile, HasFieldNames:=True, Range:="SurveyData!A1:AD"
DoCmd.TransferSpreadsheet transfertype:=acImport, tablename:="AmphibianSurveyObservationData", FileName:=strPath & strFile, HasFieldNames:=True, Range:="AmphibianSurveyObservationData!A1:AQ"
DoCmd.TransferSpreadsheet transfertype:=acImport, tablename:="BirdSurveyObservationData", FileName:=strPath & strFile, HasFieldNames:=True, Range:="BirdSurveyObservationData!A1:AQ"
DoCmd.TransferSpreadsheet transfertype:=acImport, tablename:="PlantObservationData", FileName:=strPath & strFile, HasFieldNames:=True, Range:="PlantObservationData!A1:BS"
DoCmd.TransferSpreadsheet transfertype:=acImport, tablename:="WildSpeciesObservationData", FileName:=strPath & strFile, HasFieldNames:=True, Range:="WildSpeciesObservationData!A1:AP"
' Loop to next file in directory
strFile = Dir
Loop
MsgBox "All data has been imported.", vbOKOnly
End Function
動作するように見えどうもありがとうございましたマルク、! – RFisherSK