Excel 매크로 - 동적 열 선택

  • 발행물
  • 해결책
  • 노트

발행물

Excel 매크로를 배우기 시작했습니다. 나는 열 머리글 이름만을 기반으로 열을 동적으로 선택해야하는 시트 작업을하고있었습니다. 설명해 줄게.

다음 열 (A1에서 D1까지)을 포함하는 Excel 시트가 있다고 가정 해보십시오.

 RecNo Cust_ID Cust_Name Contact_Num 

이 아래에는 고객 데이터가 있습니다. 이제 모든 레코드에 대해 Cust_ID (B 열) 및 Cust_Name (C 열)을 추출하려고합니다.

그러나 Cust_ID가 항상 B 열에 있어야 할 필요는 없다는 것이 문제입니다. 표제는 항상 Cust_ID이지만, 그 위치는 생성 된 다른 시트의 C 열로 변경 될 수 있으며 Cust_Name은 대신에 존재할 수 있습니다 B 열 (추출해야하는 두 개의 열이 서로 바뀜).

일치 함수를 사용하여 열의 위치를 ​​결정할 수 있지만 그 후에는 해당 열을 선택할 수 없습니다.

열 번호를 결정하는 데 사용한 함수는 다음과 같습니다.

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

해결책

다음을 사용하십시오.

 '데이터 시트 범위 결정. Dim LngLastRow Long DimLngLastCol Long Dim varDataSelect Variant '행과 열의 선택 범위가 동적입니다. lngLastRowNum = ActiveCell.Row Selection.End (xlToRight) .Select lngLastCol = ActiveCell.Column '워크 시트의 이름 "MonthlyReceivedClaims_Data"행 1 열에서 시작하고 ": R"& lngLastRowNum & "C"& lngLastCol varDataSelect = "MonthlyReceivedClaims_Data! R1C1 : R"& lngLastRowNum & "C"& lngLastCol ActiveWorkbook.PivotCaches.Add (SourceType : = xlDatabase, SourceData : = _ varDataSelect) .CreatePivotTable _ TableDestination : = "", TableName : = "PivotTable1", DefaultVersion : = _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination : = ActiveSheet.Cells (3, 1) 

'도구 아래에서 매크로 매크로 기능을 사용하는 것도 도움이됩니다.

'레코드를 클릭하십시오. 원하는대로 보고서 또는 피벗 테이블을 만듭니다.

그런 다음 필요에 따라 기록 중지 및 코드 편집을 클릭하십시오.

노트

이 팁에 대한 AM 덕분에 포럼에 올렸습니다.

이전 기사 다음 기사

톱 팁