0

複数のワークシートから別のワークシートにセル範囲をコピーする方法はありますか? 例:
Sheet1
りんご
ぶどう

さくらんぼ
Sheet2
オレンジ

バナナ
ブルーベリー

結果が必要です

Sheet3
りんご
ぶどう

さくらんぼ
オレンジ

バナナ
ブルーベリー

シート 1 と 2 の列 A にデータがあり、結合された結果をシート 3 の列 A に表示する必要があるとします。基本的に、Sheet3 の Sheet1 と 2 のすべての項目を 1 つの列に表示する必要があります。

何か案は?前もって感謝します。

4

2 に答える 2

1

データは同じ列にあるため、実際に行う必要があるのは、各シートを1つのマスターシートにコピーして貼り付けることだけだと思います。このVBA関数は、しばらく前にWebで見つけました(元の作成者には申し訳ありませんが、それが誰であるかを知っていれば、彼の功績を認めることができます)。すべてのワークシートを「マスター」と呼ばれる1つのワークシートに結合します。多くの時間を節約します!これがあなたが必要な場所にあなたを助けたり近づけたりするのに役立つことを願っています。

Sub CreateMasterSheet()

Application.ScreenUpdating = False
Dim wrk As Workbook
Dim sheet As Worksheet
Dim masterSheet As Worksheet
Dim rng As range

Set wrk = ActiveWorkbook

For Each sheet In wrk.Worksheets
    If sheet.Name = "Master" Then
        MsgBox "There is a worksheet called as 'Master'." & vbCrLf & _
                "Remove or rename this worksheet.", vbOKOnly + vbExclamation, "Error"
        Exit Sub
    End If
Next sheet

Set masterSheet = wrk.Worksheets.Add(After:=wrk.Worksheets(wrk.Worksheets.count))
masterSheet.Name = "Master"

For Each sheet In wrk.Worksheets
    If sheet.Index = wrk.Worksheets.count Then
        Exit For
    End If
    Set rng = sheet.range(sheet.cells(1, 1), sheet.cells(65536, 1).End(xlUp).Resize(, 256))
        masterSheet.cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.count, rng.Columns.count).Value = rng.Value
Next sheet

masterSheet.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
于 2011-07-26T03:48:42.430 に答える
0

Excelのバージョンについて言及していませんでした。2003 年と 2010 年では、Data, Consolidate を使用してこれを行うことができます。手順については、お使いのバージョンのヘルプを参照してください。

于 2011-07-25T22:18:53.827 に答える