複数のexcelを1つのexcelの複数のsheetに統合する方法

1635 ワード

問題シナリオ
データベース・テーブルは複数ありますが、各テーブルにexcelが1つ存在するため、ファイル量が大きくなります.使いやすいように、複数のexcelを1つに統合し、各テーブルを1つのsheetとし、sheet名は元のファイル名で命名する必要があります.
解決策
1.JavaはApache POIパッケージがあってexcelに対して操作することができて、まだはっきりしていないで、後でコードを貼ります.2.excel独自のVBプログラミングを使用します.EXcelで右クリックsheetで「コードを表示」のオプションが表示され、プログラミングインタフェースが開き、次のコードをコピーしてポイントに入って実行すればいいです.
注意事項
1.sheetには31文字まで必要なので、表名の長さが間違っていることに注意してください.2.excelバージョンに注意してください.xlsとxlsxの2つのフォーマットのファイルがあります.
Sub Books2Sheets()
    '       
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    
    '       
    Dim newwb As Workbook
    Set newwb = Workbooks.Add
    
    With fd
        If .Show = -1 Then
            '        
            Dim vrtSelectedItem As Variant
            
            '      
            Dim i As Integer
            i = 1
            
            '      
            For Each vrtSelectedItem In .SelectedItems
                '        
                Dim tempwb As Workbook
                Set tempwb = Workbooks.Open(vrtSelectedItem)
                
                '     
                tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)
                
                '                      ,     xls  , Excel97-2003   ,   Excel2007,    xlsx
                newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")
                
                '        
                tempwb.Close SaveChanges:=False
                
                i = i + 1
            Next vrtSelectedItem
        End If
    End With
    
    Set fd = Nothing
End Sub