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ā.