Excel-macro - dynamische kolomselectie

  • Kwestie
  • Oplossing
  • Notitie

Kwestie

Ik begin net Excel-macro's te leren. Ik werkte aan een werkblad waarin ik dynamisch een kolom moet selecteren, gebaseerd op alleen de naam van de kolomkop. Laat het me uitleggen.

Stel dat er een Excel-blad bestaat met de volgende kolommen (van A1 tot D1):

 RecNo Cust_ID Cust_Name Contact_Num 

Hieronder zijn er klantgegevens die aanwezig zijn. Nu wil ik alleen de Cust_ID (uit kolom B) en Cust_Name (uit kolom C) voor alle records extraheren.

Het probleem is echter dat het niet nodig is dat Cust_ID altijd in kolom B zou zijn. Hoewel de kop altijd Cust_ID zou zijn, zou de locatie ervan kunnen veranderen in kolom C in een ander blad dat is gegenereerd en zou Cust_Name in plaats daarvan aanwezig kunnen zijn in Kolom B (de twee kolommen die moeten worden geëxtraheerd zijn verwisseld).

Met behulp van de match-functie, ben ik in staat om de positie van de kolom te bepalen, maar daarna kan ik die kolom niet selecteren.

De functie die ik heb gebruikt om het kolomnummer te bepalen, wordt hieronder weergegeven:

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

Oplossing

Gebruik deze gewoon:

 'Gegevensbladbereik bepalen. Dim lngLastRow als lang dimmen lngLastCol als lang dimmen varDataSelect als variant 'Selecteer rijen en kolommen dynamisch bereik. Selection.End (xlDown). Selecteer lngLastRowNum = ActiveCell.Row Selection.End (xlToRight). Selecteer lngLastCol = ActiveCell.Column 'Naam van werkblad' MonthlyReceivedClaims_Data "start bij rij 1 kolom 1 'en eindig bij": R "& lngLastRowNum & "C" & lngLastCol varDataSelect = "MonthlyReceivedClaims_Data! R1C1: R" & lngLastRowNum & "C" & lngLastCol ActiveWorkbook.PivotCaches.Add (SourceType: = xlDatabase, SourceData: = _ varDataSelect) .CreatePivotTable _ TableDestination: = "", TableName: = "PivotTable1", DefaultVersion: = _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination: = ActiveSheet.Cells (3, 1) 

'Ook helpt het om de record-macrofunctie onder Tools te gebruiken.

'Klik op opnemen. Maak het rapport of de draaitabel zoals u het wilt.

Klik vervolgens op opnemen stoppen en code bewerken als dat nodig is.

Notitie

Bedankt aan AM voor deze tip op het forum.

Vorige Artikel Volgende Artikel

Top Tips