[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『異なるフォルダーからのデータ集約方法』(おーちゃん)
c:\matome に保存されているsum.xlsの sheet2に c:\matome\energyに保存されているcsv形式とexcel形式の複数のブックを集約 する。 (※ブック数は毎週増えていく)
同じフォルダー上にあるブックの集約マクロは過去ログを参考にしできたのですが、 他のフォルダーにあるブックの集約はうまくいきません。 また、下記マクロはcsv形式のみが集約されますが、excel形式を追加することも できません。
<参考:同一フォルダーのデータ集約>
sub データ集約() 'このブックと同一フォルダ内のブックの、1シート目の4行目以下を、 '新規ブックの1シートにまとめる Dim sBook As Workbook Dim dBook As Workbook Dim Fpath As String Dim Fname As String Dim rr As Range Dim Dst As Range
Fpath = ThisWorkbook.Path & "\" Fname = Dir(Fpath & "*.csv")
Application.ScreenUpdating = False
Do Until Fname = "" If LCase(Fname) = LCase(ThisWorkbook.Name) Then Else If Dst Is Nothing Then Set Dst = ThisWorkbook.Worksheets(2).Range("C2") '既存ブックの2シート目の2行目以降に貼り付け
End If Set sBook = Workbooks.Open(Fpath & Fname) Set rr = sBook.Worksheets(1).UsedRange '1シート目 Set rr = Intersect(rr, rr.Offset(3)) '4行目以下をコピー rr.Copy Dst Set Dst = Dst.Offset(rr.Rows.Count) sBook.Close False End If Fname = Dir() Loop
Application.ScreenUpdating = True MsgBox "Completed!" End Sub
上記のマクロを : : Fname = Dir(ThisWorkbook.Path & "\energy\*.*") Application.ScreenUpdating = False Do Until Fname = "" If Not LCase(Fname) = LCase(ThisWorkbook.Name) _ And ( InStr( FName, ".csv" ) > 0 Or InStr( FName, ".xls" ) > 0 ) Then : :
に変更でどうでしょうか。 (Mook)
早速ご回答頂きありがとうございました。
以下の通りマクロを変更してみましたが、動作しません。
何か間違っているのでしょうか?ご教授願いますよう宜しくお願いいたします。
Sub データ集約2()
Dim sBook As Workbook Dim dBook As Workbook Dim Fpath As String Dim Fname As String Dim rr As Range Dim Dst As Range
Fpath = ThisWorkbook.Path & "\" Fname = Dir(ThisWorkbook.Path & "\energy\*.*") Application.ScreenUpdating = False Do Until Fname = "" If Not LCase(Fname) = LCase(ThisWorkbook.Name) _ And (InStr(Fname, ".csv") > 0 Or InStr(Fname, ".xls") > 0) Then
Else If Dst Is Nothing Then Set Dst = ThisWorkbook.Worksheets(3).Range("A2") '既存ブックの3シート目の2行目以降に貼り付け
End If Set sBook = Workbooks.Open(Fpath & Fname) Set rr = sBook.Worksheets(1).UsedRange '1シート目 Set rr = Intersect(rr, rr.Offset(7)) '8行目以下をコピー rr.Copy Dst Set Dst = Dst.Offset(rr.Rows.Count) sBook.Close False
End If Fname = Dir() Loop
Application.ScreenUpdating = True MsgBox "Completed!" End Sub
Else は削ってください。 (Mook)
Elseは削除しましたが、以下のエラーメッセージが表示されてしまいます。
デバックをみると「Set sBook = Workbooks.Open(Fpath & Fname)」の箇所がひっかかっているようです。
Fpathが悪さしているんでしょうか?
実行時エラー’1004’:
’(ファイル名).csv’が見つかりません。ファイル名及びファイルの保存場所が正しいか確認してください。
そこも変更が必要ですね。 Fpath = ThisWorkbook.Path & "\" は Fpath = ThisWorkbook.Path & "\energy\" にしておいてください。 (Mook)
解決しました。
いろいろと教えていただきましてありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.