Microsoft Excel에서 VBA를 사용하여 생일을 기준으로 정렬 데이터
이 기사에서는 시트의 데이터를 생일별로 정렬하는 매크로를 만들고 데이터를 정렬하는 동안 연도를 고려하지 않습니다.
원시 데이터는 두 개의 열로 구성되며 하나에는 이름이 포함되고 두 번째 열에는 생년월일이 포함됩니다.
논리 설명
데이터를 정렬 할 “sorting_names_by_birthday”매크로를 만들었습니다.
이 매크로에서는 먼저 생년월일과 생년월일의 차이를 찾는 C 열에 수식을 삽입합니다. 그런 다음 데이터를 알파벳순으로 정렬하기 위해 이름별로 데이터를 정렬하여 두 후보의 생년월일이 같으면 이름이 알파벳순으로 표시되도록합니다. 그런 다음 데이터를 생일별로 정렬하기 위해 오름차순으로 차이를 계산하여 데이터를 정렬합니다.
데이터를 정렬 한 후 C 열에서 수식을 삭제하려면 C 열 전체를 삭제합니다.
매크로를 실행하려면 Alt + F8을 누르거나 개발자 탭으로 이동> 매크로를 클릭합니다.
아래 코드를 따르세요
Option Explicit Sub sorting_names_by_birthday() 'Disabling screen update Application.ScreenUpdating = False Dim Last_Row As Long 'Finding the last row Last_Row = ActiveCell.SpecialCells(xlCellTypeLastCell).Row Range("C16").Select 'Getting the days of the year 'Subtracting first date of the year from date of birthday ActiveCell.FormulaR1C1 = "=RC[-1]-DATE(YEAR(RC[-1]),1,1)" 'Dragging the formula Range("C16:C" & Last_Row).Select Selection.FillDown 'Sorting the data first by column A then by column C Range("A15").CurrentRegion.Sort _ key1:=Range("C15"), order1:=xlAscending, _ key2:=Range("A15"), order2:=xlAscending, _ Header:=xlYes 'Deleting the column C Columns("C").Delete Range("A15").Select End Sub
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요