/ Excel VBAを使用してシートをインポートする

Excel VBAを使用したシートの読み込み

以下では、 Excel VBA それ 他のExcelファイルからシートを1つのExcelファイルにインポートする.

Book1.xls、Book2.xlsをダウンロードし、それらを「C:test」に追加します。

状況:

Excel VBAを使用したシートの読み込み

コマンドボタンに次のコード行を追加します。

1.まず、String型の2つの変数、Worksheetオブジェクト、Integer型の1つの変数を宣言します。

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2.画面の更新をオフにし、アラートを表示します。

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3.変数ディレクトリを初期化します。最初の* .xlを見つけるためにDir関数を使用します??このディレクトリに格納されているファイル。

directory = "c:test"
fileName = Dir(directory & "*.xl??")

注意:Dir関数は、複数の文字(*)と1文字(?)のワイルドカードを使用して、すべての異なるタイプのExcelファイルを検索できます。

4.変数fileNameは、ディレクトリにある最初のExcelファイルの名前を保持するようになりました。 Do Whileループを追加します。

Do While fileName <> ""

Loop

次のコード行(5,6,7,8)をループに追加します。

5.閉じたExcelファイルからワークシートをコピーする簡単な方法はありません。したがって、Excelファイルを開きます。

Workbooks.Open (directory & fileName)

6. Excelファイルからimport-sheet.xlsにシートをインポートします。

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

説明: 変数totalは、import-sheet.xlsのワークシートの合計数のトラックを保持します。ワークシート・オブジェクトのCopyメソッドを使用して、各ワークシートをコピーし、最後のimport-sheets.xlsのワークシートの後に貼り付けます。

7. Excelファイルを閉じます。

Workbooks(fileName).Close

8. Dir関数は特別な関数です。他のExcelファイルを取得するには、引数なしでDir関数を再度使用します。

fileName = Dir()

注意:ファイル名が一致しなくなると、Dir関数は長さゼロの文字列( "")を返します。その結果、Excel VBAはDo Whileループを離れることになります。

9.画面の更新をオンにし、アラートを再度表示します(ループ外)。

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10.プログラムをテストします。

結果:

結果のインポート結果

また読む: