循环读取一个目录下面多个文件的内容,放到另外一个文件中
Public Sub getInputInfo()
On Error GoTo errl
'OUT対象ファイル開く
Dim wbOut As Workbook
Application.DisplayAlerts = False
Set wbOut = Workbooks.Open(OUT_FILE_PATH_AND_FILE_NAME, UpdateLinks:=0)
'IN対象ファイル名前
fileName = Dir(IN_FILE_PATH & "\" & SEARCH_KEY_IN_REQUEST_LIST_FILES & ".xlsx")
Do While fileName <> ""
'IN対象ファイル
Dim wbIn As Workbook
'IN対象ファイル、File毎にOpen
Application.DisplayAlerts = False
Set wbIn = Workbooks.Open(IN_FILE_PATH & "\" & fileName, UpdateLinks:=0, ReadOnly:=True)
'IN対象ファイル、Sheet毎に処理(检查活动工作簿是否以共享清单方式打开,如果是,则本示例设置当前用户以独占方式访问工作簿)
wbIn.Activate
If wbIn.MultiUserEditing Then
wbIn.ExclusiveAccess
End If
'IN対象ファイル、Sheet毎に処理
For sheet_cnt = 1 To wb.Sheets.Count
wbIn.Activate
wbIn.Sheets(wb.Sheets(sheet_cnt).Name).Select
Dim wsIn As Worksheet
Set wsIn = ActiveSheet
Call getInputInfoFromSheetMethodOne(wsIn, wbOut.Sheets(1))
Next sheet_cnt
'ファイル操作(In)に関してのStream閉じる
Application.DisplayAlerts = False
wbIn.Close savechanges:=False
Application.DisplayAlerts = True
'次のファイル名取得
fileName = Dir()
Loop
'OUT対象ファイル閉じる
Application.DisplayAlerts = False
wbOut.Save
wbOut.Close savechanges:=False
Application.DisplayAlerts = True
If ERROR_FLG = "1" Then
Application.DisplayAlerts = False
wbOut.Save
wbOut.Close savechanges:=False
Application.DisplayAlerts = True
End If
GoTo endok
errl:
'異常処理
ERROR_FLG = "1"
ERROR_INFO_LIST.Add ("関数:「getInputInfo」で、エラー発生しました。")
ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)
'OUT対象ファイル閉じる
Application.DisplayAlerts = False
wbOut.Save
wbOut.Close savechanges:=False
Application.DisplayAlerts = True
endok:
End Sub
被调用的方法
Public Sub getInputInfoFromSheetMethodThree(wks As Worksheet, outWks As Worksheet)
On Error GoTo errl
GoTo endok
errl:
'異常処理
ERROR_FLG = "1"
ERROR_INFO_LIST.Add ("関数:「getInputInfoFromSheetMethodThree」で、エラー発生しました。")
ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)
endok:
End Sub