Excel-Makro - Dynamische Spaltenauswahl

  • Problem
  • Lösung
  • Hinweis

Problem

Ich fange gerade an, Excel-Makros zu lernen. Ich habe an einem Blatt gearbeitet, in dem ich eine Spalte dynamisch auswählen muss, basierend nur auf dem Namen der Spaltenüberschrift. Lassen Sie mich erklären.

Angenommen, es gibt eine Excel-Tabelle mit den folgenden Spalten (von A1 bis D1):

 RecNo Cust_ID Cust_Name Contact_Num 

Darunter sind Kundendaten vorhanden. Jetzt möchte ich nur die Cust_ID (aus Spalte B) und den Cust_Name (aus Spalte C) für alle Datensätze extrahieren.

Das Problem ist jedoch, dass sich Cust_ID nicht immer in Spalte B befinden muss. Obwohl die Überschrift immer Cust_ID lautet, kann sich ihre Position in einem anderen generierten Arbeitsblatt in Spalte C ändern, und Cust_Name könnte stattdessen in vorhanden sein Spalte B (die beiden zu extrahierenden Spalten wurden vertauscht).

Mit der Match-Funktion kann ich die Position der Spalte bestimmen, aber danach kann ich diese Spalte nicht mehr auswählen.

Die Funktion, mit der ich die Spaltennummer ermittelt habe, ist unten angegeben:

 WorksheetFunction.Match ("Cust_ID", Bereich ("A1: D1"), 0) 

Lösung

Verwenden Sie einfach diese:

 Bestimmen des Datenblattbereichs. Dim lngLastRow As Long Dim lngLastCol As Long Dim varDataSelect As Variant 'Zeilen und Spalten dynamisch auswählen. Selection.End (xlDown) .Select lngLastRowNum = ActiveCell.Row Selection.End (xlToRight) .Select lngLastCol = ActiveCell.Column 'Name des Arbeitsblatts "MonthlyReceivedClaims_Data" beginnt in Zeile 1, Spalte 1' und endet in ": R" & N & LngLastL & L "C" & lngLastCol varDataSelect = "MonthlyReceivedClaims_Data! R1C1: R" & lngLastRowNum & "C" & lngLastCol ActiveWorkbook.PivotCaches.Add (SourceType: = xlDatabase, SourceData: = _ varDataSelectotination Table): ". = "PivotTable1", DefaultVersion: = _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination: = ActiveSheet.Cells (3, 1) 

Es ist auch hilfreich, die Funktion zum Aufzeichnen von Makros unter Extras zu verwenden.

Klicken Sie auf Aufnahme. Stellen Sie den Bericht oder die Pivot-Tabelle so ein, wie Sie es möchten.

Klicken Sie dann auf Aufzeichnung beenden und bearbeiten Sie den Code nach Bedarf.

Hinweis

Danke an AM für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps