Excel Macro - Pemilihan Lajur Dinamik

  • Isu
  • Penyelesaian
  • Catatan

Isu

Saya baru mula belajar makro Excel. Saya telah bekerja di atas lembaran yang saya harus memilih lajur secara dinamik, berdasarkan hanya nama pengepala lajur. Biar saya jelaskan.

Katakan terdapat Helaian Excel yang mengandungi lajur berikut (dari A1 hingga D1):

 RecNo Cust_ID Cust_Name Contact_Num 

Di bawah ini, ada data pelanggan yang ada. Sekarang, saya mahu mengekstrak hanya Cust_ID (dari Ruangan B) dan Cust_Name (dari Ruangan C) untuk semua rekod.

Walau bagaimanapun, masalahnya adalah bahawa tidak perlu bahawa Cust_ID akan sentiasa berada pada Kolum B. Walaupun tajuk akan selalu menjadi Cust_ID, lokasinya boleh berubah menjadi Kolom C dalam beberapa lembaran lain yang dihasilkan dan Cust_Name sebaliknya mungkin hadir dalam Ruangan B (kedua-dua lajur yang perlu diekstrak telah ditukar).

Menggunakan fungsi perlawanan, saya dapat menentukan kedudukan lajur, tetapi selepas itu saya tidak dapat memilih lajur itu.

Fungsi yang saya gunakan untuk menentukan nombor lajur diberikan di bawah:

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

Penyelesaian

Hanya gunakan ini:

 'Menentukan pelbagai datasheet. Dim lngLastRow As Long Dim lngLastCol As Long Dim varDataSelect As Variant 'Select ranges and columns range dinamik. Pilih Selection.End (xlDown). Pilih lngLastRowNum = ActiveCell.Row Selection.End (xlToRight). Pilih lngLastCol = ActiveCell.Column 'Nama lembaran kerja "MonthlyReceivedClaims_Data" mulakan di Row 1 Column 1' dan tamatkan pada ": 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) 

'Juga membantu untuk menggunakan fungsi makro rekod di bawah Alat.

'Klik rekod. Buat jadual laporan atau pivot seperti yang anda mahukan.

Kemudian klik berhenti rekod dan edit kod seperti yang diperlukan.

Catatan

Terima kasih kepada AM untuk tip ini di forum.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama