Excel makro - dinamiskās kolonnas izvēle

  • Izdevums
  • Risinājums
  • Piezīme

Izdevums

Es tikai sāku mācīties Excel makro. Es strādāju pie lapas, kurā man ir jāizvēlas kolonna dinamiski, pamatojoties tikai uz kolonnas galvenes nosaukumu. Ļauj man paskaidrot.

Sakiet, ka ir Excel lapa, kurā ir šādas slejas (no A1 līdz D1):

 RecNo Cust_ID Cust_Name Contact_Num 

Zem šiem datiem ir klāt klienta dati. Tagad es vēlos iegūt tikai Cust_ID (no B slejas) un Cust_Name (no C slejas) visiem ierakstiem.

Tomēr problēma ir tā, ka nav nepieciešams, lai Cust_ID vienmēr būtu B slejā. Lai gan virsraksts vienmēr būtu Cust_ID, tās atrašanās vieta var mainīties uz C kolonnu citā ģenerētajā lapā un Cust_Name vietā varēja būt B sleja (abas kolonnas, kas jāizdala, ir savstarpēji aizvietotas).

Izmantojot atbilstības funkciju, es varu noteikt kolonnas atrašanās vietu, bet pēc tam es nevaru izvēlēties šo kolonnu.

Funkcija, ko izmantoju, lai noteiktu kolonnas numuru, ir dota tālāk:

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

Risinājums

Vienkārši izmantojiet šos:

 “Datu lapas diapazona noteikšana. Dim lngLastRow As Long Dim lngLastCol As Long Dim varDataSelect As Variant 'Atlasiet rindas un kolonnas dinamiski. Izvēlne.End (xlDown) .Izvēlieties lngLastRowNum = ActiveCell.Row Selection.End (xlToRight) .Izvēlieties lngLastCol = ActiveCell.Column 'Darblapas nosaukums “MonthlyReceivedClaims_Data” sākas 1. rindas 1. slejā un beidzas ar “: 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) 

“Arī tas palīdz izmantot ieraksta makro funkciju sadaļā Rīki.

'Noklikšķiniet uz ieraksta. Padariet ziņojumu vai pivot tabulu kā vēlaties.

Pēc tam noklikšķiniet uz Beigt ierakstu un rediģēt kodu pēc vajadzības.

Piezīme

Pateicoties AM par šo padomu forumā.

Iepriekšējais Raksts Nākamais Raksts

Top Padomi