Exceli makro - dünaamilise veeru valik

  • Probleem
  • Lahendus
  • Märge

Probleem

Ma hakkan lihtsalt õppima Exceli makroid. Ma töötasin lehel, kus pean valima veeru dünaamiliselt, tuginedes ainult veeru päise nimele. Lubage mul selgitada.

Ütle, et on olemas Exceli leht, mis sisaldab järgmisi veerge (A1-st D1-le):

 RecNo Cust_ID Cust_Name Contact_Num 

Nende all on olemas kliendiandmed. Nüüd, ma tahan väljavõtte ainult Cust_ID (veerust B) ja Cust_Name (veerust C) kõigi kirjete jaoks.

Probleem seisneb siiski selles, et Cust_ID ei ole alati B-veerus. Kuigi pealkiri oleks alati Cust_ID, võib selle asukoht muutuda C-veerguks mõnel muul genereeritud lehel ja Cust_Name võib selle asemel olla B veerg (kaks veergu, mis tuleb välja võtta, on vahetatud).

Kasutades mängufunktsiooni, saan määrata veeru asukoha, kuid pärast seda ei saa ma seda veergu valida.

Veeru numbri määramiseks kasutatud funktsioon on toodud allpool:

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

Lahendus

Lihtsalt kasutage neid:

 „Andmelehe valiku määramine. LambLastRow As Long LngLastCol As Long (VÄIKE LAGLIKKU) Nagu varieeruv VarDataSelect As Variant 'Valige rida ja veerud dünaamiliselt. Valik.End (xlDown) .Vali lngLastRowNum = ActiveCell.Row Selection.End (xlToRight) .Vali lngLastCol = ActiveCell.Kolonn 'Töölehe nimi "KuuRecivedClaims_Data" algab reas 1 veerust 1 ja lõppu ": 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) 

„Samuti aitab see tööriista abil kasutada kirje makrofunktsiooni.

'Klõpsake kirje. Tehke raport või pivot tabel nagu soovite.

Seejärel vajuta vajadusel peatuse salvestamine ja muutke koodi.

Märge

Tänu AMile selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited