2017-09-06 6 views
0

私は毎月30枚のシートを持っています。それぞれに異なるデータを持つ同じ列があります(A1:A30の範囲)。だから、私の仕事は、すべてのシートからこの範囲をコピーして、隣接する異なる列の1つのマスターシートにコピーすることです。 A1:A30、B1:B30、C1:C30などがある。特定の範囲のセルを30枚から1枚に自動コピーする方法。

+1

はCtrl + Cと私は* *自動化を呼ぶものではありませんし、Ctrl + V – Luuklag

+0

@Luuklag。 –

+0

@Nurzhanようこそへスタックオーバーフロー。これは無料のコーディングサービスではありません。したがって、あなたがすでに持っているコードを表示して、どこに行き詰まっているのか、エラーメッセージが出たら教えてください。そこには多くのチュートリアルがあります(1)* [1つのシートから別のシートにコピーする](https://stackoverflow.com/questions/32908099/copy-data-from-one-sheet-to-another)*および( 2)* [最後に使用された列を見つける]方法(https://stackoverflow.com/questions/16882143/find-out-the-last-used-column-in-a-given-row-excel-vba)*あなた自身のコードをどうやって起動するかはまあまあです。 –

答えて

0

これは、コピーのための一般的なコードでは、範囲:

Sub Copy_ranges() 

    Dim NS As Worksheet 

    Application.ScreenUpdating = False 
    Application.EnableEvents = False 

    Set NS = Sheets.Add 

    i = 1 
    refRange = "A1:D10" 

    For Each sht In Worksheets 
     If (sht.Name <> NS.Name) Then 
     Set SheetRange = sht.Range(Right(refRange, Len(refRange) - InStr(refRange, "!"))) 
     SheetRange.Copy 
     NS.Cells(i, 1).Value = sht.Name 
     NS.Cells(i, 2).PasteSpecial xlPasteValues 
     i = i + SheetRange.Rows.Count 
     End If 
    Next sht 
    Application.ScreenUpdating = True 
    Application.EnableEvents = True 

End Sub 

あなたは、あなたのニーズに合わせて、あなたの範囲とペーストサイクルにrefRangeを変更することがあります。

Sub Copy_ranges() 

    Dim NS As Worksheet 

    Application.ScreenUpdating = False 
    Application.EnableEvents = False 

    Set NS = Sheets.Add 

    i = 1 
    refRange = "A1:A10" 

    For Each sht In Worksheets 
     If (sht.Name <> NS.Name) Then 
      Set SheetRange = sht.Range(Right(refRange, Len(refRange) - InStr(refRange, "!"))) 
      SheetRange.Copy 
      NS.Cells(1, i).Value = sht.Name 
      NS.Cells(2, i).PasteSpecial xlPasteValues 
      i = i + SheetRange.Columns.Count 
     End If 
    Next sht 

    Application.ScreenUpdating = True 
    Application.EnableEvents = True 

End Sub 
+0

アレクセイ、これは私が欲しいものです、ありがとう!しかし、もう1つの問題が現れました。コピーされたデータで新しいシートが作成されると、すべてのデータは日付形式になります。フォーマットを一般化するにはどうしたらいいですか? – Nurzhan

関連する問題