Om du hanterar flera Excel-arbetsböcker med liknande uppgifter , kanske du vill slå samman dem alla i en sammanfattande arbetsbok . Detta lämnar den ursprungliga arbetsböcker intakt och ger dig en enda arbetsbok ska användas som en översikt . Excel gör processen enkel genom sitt Visual Basic add-on . Koden kan se långa och skrämmande , men det är en ganska enkel kopiera och klistra jobb som egentligen inte kräver kodning kunskap eller erfarenhet . Instruktioner
1
Lägg alla arbetsböcker som du vill sammanfoga till en mapp på din dator .
2
Öppna en ny arbetsbok i Excel .
Sida 3
Tryck Alt + F11 . Detta kommer att öppna Visual Basic Editor .
4
Välj " Modul " från " Infoga " -menyn .
5
Kopiera och klistra in följande VB kod i textfönstret :
sub MergeAllWorkbooks ( ) katalog
Dim MyPath As String , FilesInPath As String
Dim MyFiles () As String
Dim SourceRcount As Long , FNum Som lång
Dim mybook Som arbetsbok , BaseWks Som arbetsblad
Dim sourceRange Som Range , destrange Som Range
Dim rnum As Long , CalcMode As Long
MyPath = " PATHHERE "
p Om Right ( MyPath , 1 ) < > " \\ " Då
MyPath = MyPath & " \\ "
End If
FilesInPath = Dir ( MyPath & " * . xl * " ) katalog p Om FilesInPath = " " Då
MsgBox " Inga filer hittades "
Exit Sub
End If
FNum = 0
göra medan FilesInPath < > " "
FNum = FNum + 1
ReDim Preserve MyFiles ( 1 Till FNum ) katalog
MyFiles ( FNum ) = FilesInPath
FilesInPath = Dir ( ) katalog
Loop
Med Application
CalcMode = . Beräkning
. Beräkning = xlCalculationManual
. ScreenUpdating = False
. EnableEvents = False
Avsluta med
BaseWks
set = Arbetsböcker . Add ( xlWBATWorksheet ) . Arbetsblad ( 1 ) katalog
rnum = 1
p Om FNum > 0 Then
För FNum = LBound ( MyFiles ) Till UBound ( MyFiles )
Set mybook = Nothing
On Error Resume Next
Set mybook = Workbooks.Open ( MyPath & MyFiles ( FNum ) ) katalog
On Error GoTo 0
Om inte mybook är ingenting Sedan
On Error Resume Next
mybook.Worksheets ( 1 ) katalog
Set sourceRange = Range ( " A1 : . C1 " ) katalog
End With
p Om Err.Number > 0 Then
Err.Clear
Set sourceRange = Nothing
Else
Om sourceRange.Columns.Count > = BaseWks.Columns.Count Sen
Set sourceRange = Nothing
End If
End If
On Error GoTo 0
p Om inte sourceRange är ingenting Sedan
SourceRcount = sourceRange.Rows.Count
p Om rnum + SourceRcount > = BaseWks.Rows.Count sedan
MsgBox " det finns inte tillräckligt med rader i målet kalkylbladet . "
BaseWks.Columns.AutoFit
mybook.Close saveChanges : = False
GoTo ExitTheSub
Else
Med sourceRange
BaseWks.Cells ( rnum , "A") . _
Resize ( . Rows.Count ) . Value = MyFiles ( FNum ) katalog
End With
Set destrange = BaseWks.Range ( " B " & rnum )
Med sourceRange
Set destrange = destrange . _
Resize ( . Rows.Count , . Columns.Count ) katalog
End With
destrange.Value = sourceRange.Value
rnum = rnum + SourceRcount
End If
End If
mybook.Close saveChanges : = False
End If
Nästa FNum
BaseWks.Columns.AutoFit
End If
ExitTheSub : .
Application
ScreenUpdating = Sant
EnableEvents = . sant
. Beräkning = CalcMode
End With
End Sub
6
Ersätt " PATHHERE " på rad 8 med sökvägen till mappen med alla arbetsboksfiler filer. Använd formuläret . " C: \\ Mina dokument \\ Mapp1 \\ Mapp2 ... "
7
Tryck Alt + Q för att skapa sammanfattningen arbetsboken