Predefinição:Taxonomia/Fabrosaurus

Private Sub Worksheet_Change(ByVal Target As Range)

   ' 변경된 범위가 전체 행에 걸쳐 있는지 확인
   If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
       Call AutoNumberWithMergedCells
   End If

End Sub

Sub AutoNumberWithMergedCells()

   Dim ws As Worksheet
   Dim rng As Range
   Dim cell As Range
   Dim currentNumber As Long
   ' 현재 활성 시트 가져오기
   Set ws = ThisWorkbook.ActiveSheet
   
   ' 데이터가 있는 마지막 행 찾기 (B열 기준)
   Dim lastRow As Long
   lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
   
   ' 초기 순번 설정
   currentNumber = 1
   
   ' A열의 순번 초기화
   ws.Range("A1:A" & lastRow).ClearContents
   
   ' 순번 입력
   For Each cell In ws.Range("A1:A" & lastRow)
       ' 해당 셀의 병합 범위 가져오기
       Set rng = cell.MergeArea
       
       ' 병합된 셀의 첫 번째 셀에만 순번 부여
       If cell.Address = rng.Cells(1, 1).Address Then
           cell.Value = currentNumber
           currentNumber = currentNumber + 1
       End If
   Next cell

End Sub