2016-10-01 15 views
0

過去5年間(何百ものワークブック)の各日の売上データのファイルがあります。VBAワークブックのデータを特定のワークブックに移動

各ワークブックには多くのワークシートがあり、各ファイル内の要約シートから情報を取得するだけです。

各ファイルには、「E12、E13、E14、およびE15」のセルに4つのデータがあり、「概要の詳細」という要約ページが表示されます。

この情報を新しいファイルの行に転記します。 また、ワークブックの名前をA列にコピーして、その横にデータを入れたいとします(列B〜E)。

次に、これらのワークブック内の別のワークシートからさらに2つのデータを取り出し、上記の4つの右側の列(F、G)に配置したいと思います。

他のワークシートは「毎日の詳細」と呼ばれます。売上高は毎日変化するため、ファイルの総数はファイルごとに異なります。しかし、関連する2つの行には、「合計パイプ」と「合計バルブ」(列B)というラベルが付けられ、データは両方の行のJ列に配置されます。

私はファイルを年単位で整理していますので、 "2014"です。各ファイルを手動で開かなくても、マクロを実行してフォルダ内のファイルを開くことはできますか?

各ブックからこのデータを取得するマクロを構築する方法に関するアイデアはありますか? ありがとう!

+0

http://stackoverflow.com/help/how-to-ask –

答えて

0

このサイトを検索する際の最小限の努力は、あなたにこのような何かをもたらしました。エクセルVBAのドキュメントの内容(そのかなり有益なリソース)をチェックしてください>>

Sub Theloopofloops() 

Dim wbk As Workbook 
Dim Filename As String 
Dim path As String 
Dim rCell As Range 
Dim rRng As Range 
Dim wsO As Worksheet 
Dim StartTime As Double 
Dim SecondsElapsed As Double 
Dim sheet As Worksheet 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Application.Calculation = xlCalculationManual 

StartTime = Timer 

path = "pathtofile(s)" & "\" 
Filename = Dir(path & "*.xl??") 
Set wsO = ThisWorkbook.Sheets("Sheet1") 

Do While Len(Filename) > 0 
    DoEvents 
    Set wbk = Workbooks.Open(path & Filename, True, True) 
     For Each sheet In ActiveWorkbook.Worksheets 
       Set rRng = sheet.Range("b1:b308") 
       For Each rCell In rRng.Cells 
       If rCell <> "" And rCell.Value <> 0 Then 
        'code to do stuff 
        'avoid stuff like .copy/.paste 
        'using stuff like "sheet.range.value = sheet.range.value instead 
       End If 
       Next rCell 
     Next 
    wbk.Close False 
    Filename = Dir 
Loop 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
Application.Calculation = xlCalculationAutomatic 

SecondsElapsed = Round(Timer - StartTime, 2) 
MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation 

End Sub 

また、このサイト上の質問をするための要件の一部は、少なくとも自分自身を試してみましたています。このサイトの多くの場所でこのコードがどのようにすぐに利用可能であるかを見ると、私はちょうど役に立つだけで害を感じませんでした:)

また、あなたのニーズに合わせてこのコードを調整する必要があります。私はあなたのために重い持ち上げをしました。

関連する問題