Excel - Sloučit několik listů do jednoho

Problém

Pomocí aplikace Excel ukládám informace o několika produktech a mám pro každý rozsah jiný pracovní list. Jak sloučit (postupně kombinovat) všechny tyto pracovní listy do jedné stránky? Všechny pracovní listy mají stejný počet sloupců se stejným názvem (v horním řádku).

Jak pokračovat?

Řešení

Za předpokladu, že:

1. List s názvem Konsolidovaný lze vytvořit a odstranit makro

2. Hlavičky jsou na řádku 1 na všech listech a jsou společné pro všechny

3. Všechny listy se mají kopírovat

 Sub CombineSheets () Dim lConRow jako dlouhý dim list jako varianta Dim sConsolidatedSheet jako řetězec Dim lSheetRow jako dlouhý Dim sLastCol jako řetězec sConsolidatedSheet = "Konsolidovaný" On Error Resume Next Sheets (sConsolidatedSheet) .Delete On Error GoTo 0 Sheets.Adel ActiveSheet.Name = sConsolidatedSheet Pro každý list v listech Pokud Sheet.Name = sConsolidatedSheet pak GoTo Next_Sheet Pokud sLastCol = "" Pak sLastCol = Sheet.Cells (1, Columns.Count) .End (xlToLeft) .Address Sheets (sConsolidatedSheet) .Range ("1: 1 ") = Sheet.Range (" 1: 1 ") Hodnota lConRow = 1 End Pokud lSheetRow = 0 On Error Resume Další lSheetRow = Sheet.Cells.Find (" * ", buňky (1, 1), SearchOrder: = xlByRows, SearchDirection: = xlPrevious) .Row On Error GoTo 0 If (lSheetRow> 1) Pak Listy (sConsolidatedSheet) .Range (lConRow + 1 & ":" & lSheetRow + lConRow - 1) = List.Range ("2:" & lSheetRow) .Value lConRow = Listy (sConsolidatedSheet) .Cells.Find ("*", buňky (1, 1), SearchOrder: = xlByRows, SearchDirection: = xlPrevious) .Row End If Next_Sheet: Next End Sub 

Díky rizvisa1 pro tento tip.

Předchozí Článek Následující Článek

Nejlepší Tipy