2017-11-23 2 views
-3

VBAでループ・コードを作成してサポートする必要があります。毎日(例えば、X-20171101、X-20171102など)。必要な情報は、この種のファイルごとに、最初のシートの同じセル(B287)にあります。私は1つの原点にコピーされたセルB287内のデータをExcelファイル(Origin.xlsなど)に変換したいと考えています。原点ファイルには、列 "A"の日付と、列 "B"の対応する数値(セルB287のデータ)が含まれています。毎日生成されたExcelファイルから同じ起点ファイルを1つの起点ファイルにコピーするにはどうすればいいですか?

以下

、私がこれまでに書くように管理するものですが、それだけで一つのファイルからのコピーは:

これまでの私のコードは、以下を参照してください。

Sub eurobig() 

Dim Originfile As Workbook 
Dim Inputfile As Workbook 

Set Inputfile = Workbooks.Open("C:\Users\YW85SU\..\IX25_20171120.csv") 
Set Originfile = Workbooks.Open("C:\Users\YW85SU\..\Origin.xlsx") 

Inputfile.Sheets("IX25_20171120").Range("B287").Copy 

Originfile.Sheets("Sheet1").Range("B1").PasteSpecial 

Inputfile.Close 

私はより多くを介してループすることができますどのようにファイル?

本当にありがとうございます。どうもありがとう!

+0

はい、方法があります。コードを書く。あなたが手伝ってくれるものがありますか? –

+0

はい、あります: 'code' サブeurobig()オープン 'ワークブック ワークブック として暗いINPUTFILEとして 薄暗いOriginfile' は、第1の両方のワークブック: 設定INPUTFILE = Workbooks.Open(" C:\ユーザーは\ .. \ IX25_20171120.csv ") Originfile = Workbooks.Open(" C:\ Users \ .. \ Origin.xlsx ") '入力からコピー: Inputfile.Sheets(" IX25_20171120 ")。範囲(" B287 " ).Copy '原点に貼り付けます。 Originfile.Sheets( "シート1" の)範囲( "B1")PasteSpecial 。' 閉じるINPUTFILE: Inputfile.Close 'code' 現時点では1つのファイルからしかコピーできません。私は毎日表示されるより多くのファイルのためにこれをループで実行できるようにしたいと思います。 – adima

+0

コードを含める場合は、質問を編集して追加します。コメントのコードは通常スキップされます。 –

答えて

0

未テスト:

Sub eurobig() 

    Const FPATH As String = "C:\Users\YW85SU\..\" 

    Dim Originfile As Workbook 
    Dim Inputfile As Workbook, f, c As Range 

    Set Originfile = Workbooks.Open(FPATH & "Origin.xlsx") 
    Set c = Originfile.Sheets("Sheet1").Range("A1") 

    f = Dir(FPATH & "*.csv") 

    Do While Len(f) > 0 

     Set Inputfile = Workbooks.Open(FPATH & f) 
     c.Value = f 
     c.Offset(0, 1).Value = Inputfile.Sheets(1).Range("B287").Value 
     Set c = c.Offset(1, 0) 'next row 
     Inputfile.Close False 
     f = Dir() 

    Loop 

End Sub 
関連する問題