500 個の XLS ファイルをすべて同じ構造でインポートする最も簡単な方法は何ですか?
または、すべての XLS ファイルを 1 つの XLS ファイルに結合しましたが、各シート名は XLS ファイル内で一意になりました。
500 個の XLS ファイルをすべて同じ構造でインポートする最も簡単な方法は何ですか?
または、すべての XLS ファイルを 1 つの XLS ファイルに結合しましたが、各シート名は XLS ファイル内で一意になりました。
仕事を完了するのに役立つこれら2つのVBAを見つけました。
1 つ目は、1 つのディレクトリ内のすべての XLS を 1 つの XLS に結合し、各 XLS ファイルに対して一意のワークシートを作成します。
Sub Merge_Multiple_XLS_Into_WorkSheets()
Path = "C:\Folder\"
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
すべてのシートを 1 つに結合する 2 つ目
Sub Merge_Sheets_Into_One()
Const sRANGE = "A2:Z100"
Dim iSheet, iTargetRow As Long, oCell As Object, bRowWasNotBlank As Boolean
Dim iTop, iLeft, iBottom, iRight As Long
Sheets(1).Select: Sheets.Add
Sheets(1).Select
Cells.Select
Selection.Clear
bRowWasNotBlank = True
For iSheet = 2 To ThisWorkbook.Sheets.Count: DoEvents
For Each oCell In Sheets(iSheet).Range(sRANGE).Cells: DoEvents
If oCell.Column = 1 Then
If bRowWasNotBlank Then iTargetRow = iTargetRow + 1
bRowWasNotBlank = False
End If
If oCell.MergeCells Then
bRowWasNotBlank = True
If oCell.MergeArea.Cells(1).Row = oCell.Row Then
If oCell.MergeArea.Cells(1).Column = oCell.Column Then
Sheets(1).Cells(iTargetRow, oCell.Column) = oCell
iTop = iTargetRow
iLeft = oCell.Column
iBottom = iTop + oCell.MergeArea.Rows.Count - 1
iRight = iLeft + oCell.MergeArea.Columns.Count - 1
Sheets(1).Range(Cells(iTop, iLeft), Cells(iBottom, iRight)).MergeCells = True
End If
End If
End If
If Len(oCell) Then bRowWasNotBlank = True
Sheets(1).Cells(iTargetRow, oCell.Column) = oCell
Next oCell
Next
Sheets(1).Activate
End Sub
...これら 2 つの VBS スクリプトを実行した後は、MS-SQL Management Studio からデータのインポート ウィザードを実行するだけです。
お役に立てれば...