Excel makró - dinamikus oszlopválasztás

  • Probléma
  • Megoldás
  • jegyzet

Probléma

Csak kezdem tanulni az Excel makrókat. Egy lapon dolgoztam, ahol dinamikusan ki kell választanom egy oszlopot, csak az oszlopfejléc neve alapján. Hadd magyarázzam.

Mondjuk, hogy van egy Excel lap, amely az alábbi oszlopokat tartalmazza (A1-től D1-ig):

 RecNo Cust_ID Cust_Name Contact_Num 

Ezek alatt vannak olyan ügyféladatok, amelyek jelen vannak. Most csak a Cust_ID-et szeretném kivonni (a B oszlopból) és Cust_Name-t (a C oszlopból) az összes rekordhoz.

A probléma azonban az, hogy nem szükséges, hogy a Cust_ID mindig szerepeljen a B. oszlopban. Bár a cím mindig Cust_ID lesz, a helyét egy másik létrehozott lap C oszlopára lehet változtatni, és a Cust_Name helyett a B oszlop (a kivonandó két oszlopot kicserélték).

A mérkőzés funkció használatával meg tudom határozni az oszlop pozícióját, de ezt követően nem tudom kiválasztani ezt az oszlopot.

Az oszlopszám meghatározására használt funkciót az alábbiakban adom meg:

 WorksheetFunction.Match ("Cust_ID", tartomány ("A1: D1"), 0) 

Megoldás

Csak használja ezeket:

 'Adatlap meghatározása. Hosszúsággátlási idő, amint hosszú lgLastCol As Long A varDataSelect As Variant 'A sorok és oszlopok dinamikusan állíthatók. Kijelölés.End (xlDown) .Válassza ki a lngLastRowNum = ActiveCell.Row Selection.End (xlToRight) parancsot. Válassza ki az lngLastCol = ActiveCell.Column '' A munkalap neve "Havi ReceivedClaims_Data" kezdődik az 1. sor 1. oszlopában, és vége: "R" & lngLastRowNum & "C" & lngLastCol varDataSelect = "MonthlyReceivedClaims_Data! R1C1: R" & lngLastRowNum & "C" & lngLastCol ActiveWorkbook.PivotCaches.Add (SourceType: = xlDatabase, SourceData: = _ varDataSelect). = "PivotTable1", DefaultVersion: = _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination: = ActiveSheet.Cells (3, 1) 

„Ezenkívül segít a rekord makró funkció használatában az Eszközök alatt.

'Kattintson a rekordra. Készítse el a jelentést vagy a pivot táblát, mint azt szeretné.

Ezután kattintson a Stop record (Szerkesztés befejezése) gombra, és szükség szerint szerkessze a kódot.

jegyzet

Köszönjük az AM-nek, hogy ez a tipp a fórumon.

Előző Cikk Következő Cikk

Top Tippek