Transponieren Spalte in Excel Sheets mit VBA
in Excel-Tabellen
Szenario
Angenommen, Sie haben eine Excel-Arbeitsmappe. Es hat 3 Blätter. Ein Blatt enthält 5 Spalten. Jede Spalte enthält die Daten einer anderen Stadt. Jedes Blatt enthält ähnliche 5 Spalten mit unterschiedlichen Daten derselben Städte.
Herausforderung:
Wir müssen eine Datei erstellen, die für jede einzelne Spalte unterschiedliche Blätter enthält. Jedes Blatt sollte die Daten der jeweiligen Spalte enthalten. Am Ende werden wir 5 Blätter mit jeweils 3 Spalten haben. In gewisser Weise werden Spalten in Blätter transponiert.
Logik:
Zuerst müssen wir eine Arbeitsmappe erstellen, die für jede Spalte unterschiedliche Blätter enthält. Wir können dies tun, indem wir uns die Überschriften des ersten Blattes unserer Originaldatei ansehen.
Als Nächstes müssen wir jedes Blatt des Originalblatts durchlaufen, um jede Spalte in die entsprechenden Blätter der neuen Arbeitsmappe zu kopieren.
VBA-Code zum Transponieren von Spalten in Blätter.
Sehen wir uns zuerst den VBA-Code an, um die Blätter zu transponieren. Ich erkläre es unten.
Sub TransposeColsToSheets() 'varibles Dim wb As Workbook Dim twb As Workbook Dim lstRw As Integer Dim lstCl As Integer Dim cols As Range With Application .DisplayAlerts = False .ScreenUpdating = False End With 'creating new file Set wb = Workbooks.Add 'saving the file. Replace the path with your destination. wb.SaveAs "C:\Users\Manish Singh\Desktop\Excel Tip\result.xlsx" Set twb = ThisWorkbook twb.Sheets(1).Activate lstCl = Cells(1, Columns.Count).End(xlToLeft).Column 'identfying headers for city names Set cols = Range(Cells(1, 1), Cells(1, lstCl)) 'loop to create sheets For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next 'loop to transpose columns to sheets For Each sh In twb.Sheets For x = 1 To cols.Count sh.Activate lstRw = Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(1, x), Cells(lstRw, x)).Copy wb.Sheets("page" & x).Activate lstCl = Cells(1, Columns.Count).End(xlToLeft).Column + 1 Range(Cells(1, lstCl), Cells(1, lstCl)).PasteSpecial xlPasteAll Next x Next sh 'saving and closing the result workbook wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Sie können die oben genannte Datei herunterladen, um sie sofort zu verwenden, oder den Code kopieren, um sie nach Ihren Wünschen anzupassen.
Sobald Sie den Code ausgeführt haben, wird sofort eine Excel-Datei mit 5 Blättern erstellt, wobei jedes Blatt 3 Spalten mit den Daten derselben Stadt enthält.
`link: /wp-content-uploads-2019-12-Transpose-Column-To-sheets.xls [
Transpose Column To Sheets]
Wie funktioniert es?
Im obigen Beispielcode haben wir angenommen, dass die Datei von der ersten Zelle jedes Blattes ausgeht und jedes Blatt die gleiche Anzahl von Spalten enthält.
In den ersten Codezeilen haben wir die Variablen deklariert, die wir für die Prozedur benötigen. Wir haben die Spaltenüberschriften in einer Variablen namens cols gespeichert. Wir haben auch eine XLSX-Datei mit dem Namen result.xlsx * erstellt.
Als nächstes haben wir eine Schleife verwendet, um die gleiche Anzahl von Blättern in result.xlsx wie in Header-Incols zu erstellen.
'loop to create sheets For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next
Als nächstes haben wir eine verschachtelte Schleife verwendet. Die erste Schleife besteht darin, Blätter in der Originaldatei zu iterieren. Nächste Schleife zum Kopieren jeder Spalte und Einfügen in jedes Blatt in der Datei results.xlsx.
Am Ende speichern wir die Arbeitsmappe result.xlsx und schließen sie. Und es ist geschafft.
Also ja Leute, so können Sie jede Spalte mit VBA auf ein neues Blatt in Excel kopieren. Dies wurde von unserem UserMahmood im Kommentarbereich gefragt.
Ich dachte, es hätte einen Artikel verdient, damit er für uns alle verfügbar ist. Hier hast du es. Ich hoffe es war erklärend genug. Wenn Sie noch Zweifel oder andere Fragen haben, fragen Sie im Kommentarbereich unten nach.
Verwandte Artikel:
Laden Sie die Arbeitsdatei herunter.
link: / allgemeine-themen-in-vba-ausschalten-warnwarnmeldungen-mit-vba-in-microsoft-excel [Warnmeldungen mit VBA in Microsoft Excel 2016 ausschalten]
| Um Warnmeldungen zu deaktivieren, die den laufenden VBA-Code unterbrechen, verwenden wir die Application-Klasse.
link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Neue Arbeitsmappe mit VBA in Microsoft Excel 2016 hinzufügen und speichern]
| Zum Hinzufügen und Speichern von Arbeitsmappen mit VBA verwenden wir die Klasse Arbeitsmappen. Workbooks.Add fügt problemlos neue Arbeitsmappen hinzu …
Beliebte Artikel:
link: / Tastatur-Formel-Verknüpfungen-50-Excel-Verknüpfungen-zur-Steigerung-Ihrer-Produktivität [50 Excel-Verknüpfungen zur Steigerung Ihrer Produktivität]
| Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Verknüpfungen können Sie noch schneller in Excel arbeiten.
link: / formeln-und-funktionen-einführung-der-vlookup-funktion [Die VLOOKUP-Funktion in Excel]
| Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, mit der Werte aus verschiedenen Bereichen und Tabellen gesucht werden. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
| Zählen Sie Werte mit Bedingungen, die diese erstaunliche Funktion verwenden.
Sie müssen Ihre Daten nicht filtern, um einen bestimmten Wert zu zählen. Die Countif-Funktion ist wichtig, um Ihr Dashboard vorzubereiten.
link: / excel-formel-und-funktion-excel-sumif-funktion [Verwendung der SUMIF-Funktion in Excel]
| Dies ist eine weitere wichtige Funktion des Dashboards. Auf diese Weise können Sie Werte unter bestimmten Bedingungen zusammenfassen.