2017-03-13 10 views
0

セルA1にあるデータの月を含む別のシートからデータの範囲をコピーする必要があります。だから、私は2017年2月セルA1と2017年1月1日から2017年12月31日までの別のシートのデータ列を、行Aとその下の行にあるデータと一緒に持っています。私はそれを実行するたびにセルA1を読み込み、2017年2月1日から2017年2月1日から2017年2月28日にデータの列をコピーし、セルA1が2017年3月ならば2017年3月1日から2017年3月31日までコピーしてください。どうすればいいですか? 別のセルの値を使用してVBA内のセルを参照する方法

私はマクロが、それは常に2017年2月1日から、私が望んでいたされていない2017年2月28日にコピーされますので、参照セルがロックされている記録しました。

Windows("MASTERFILE.xlsm").Activate 
Range("FA2:FT2").Select 
Selection.Copy 
Windows("NEW_FILE.xlsm").Activate 
Sheets("borrowing").Select 
Range("B2").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Windows("MASTERFILE.xlsm").Activate 
Range("FA25:FT28").Select 
Application.CutCopyMode = False 
Selection.Copy 
Windows("NEW_FILE.xlsm").Activate 
Range("B3").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Sheets("Main Page").Select 

End Subの

助けてください。ありがとうございました!

答えて

0

これが役立ちます。

Sub GetDataByMonth() 
    Dim mth As Integer, year As Integer, data As Range, item As Range 

    With Worksheets("Sheet1") 
     mth = VBA.DatePart("m", .Range("A1")) 
     year = VBA.DatePart("yyyy", .Range("A1")) 
    End With 

    Set data = Worksheets("Sheet2").Range("A1:A200") 

    For Each item In data 
     If VBA.DatePart("m", item) = mth And VBA.DatePart("yyyy", item) = year Then 
      Range(Cells(Item.Row, 2), Cells(Item.Row, 40)).Copy 
      Item.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
     End If 
    Next item 
End Sub 
  • は、あなたの日付がS /シート
  • それをコピー時に各ラインの日付としてフォーマットされていると仮定します。
  • AN(40)に(2)あなたの助けを
+0

こんにちはおかげであなたは、列Bにコピーしたいデータを前提と!それはうまくいったけど、行全体ではなくBからしかコピーしないようにするにはどうすればいいですか? – yeocs93

+0

行の幅を正確に知っていますか?例えば、それは常にBからHになるでしょうか? –

+0

列BをHにコピーしたいとします。 'Item.EntireRow.Copy'を' Range(Cells(item.Row、2)、Cells(item.Row、8))に更新します。EntireRow.Copy Destination := Worksheets( "Sheet3")。Range( "A"&rw) ' –

関連する問題