Sub MergeCellsByCategoryAndItemCode()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim mergeStart As Long
    
    ' 현재 활성화된 시트 설정
    Set ws = ActiveSheet
    
    ' 마지막 행 찾기
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 경고 메시지 비활성화
    Application.DisplayAlerts = False
    
    ' "분류" 열 병합
    mergeStart = 4 ' 데이터 시작 행
    For i = 5 To lastRow + 1 ' 마지막 행까지
        If ws.Cells(i, "A").Value <> ws.Cells(i - 1, "A").Value Or i > lastRow Then
            If mergeStart < i - 1 Then
                ws.Range(ws.Cells(mergeStart, "A"), ws.Cells(i - 1, "A")).Merge
                ws.Cells(mergeStart, "A").VerticalAlignment = xlCenter
                ws.Cells(mergeStart, "A").HorizontalAlignment = xlCenter
            End If
            mergeStart = i
        End If
    Next i
    
    ' "품목코드" 열 병합
    mergeStart = 4 ' 데이터 시작 행
    For i = 5 To lastRow + 1 ' 마지막 행까지
        If ws.Cells(i, "B").Value <> ws.Cells(i - 1, "B").Value Or i > lastRow Then
            If mergeStart < i - 1 Then
                ws.Range(ws.Cells(mergeStart, "B"), ws.Cells(i - 1, "B")).Merge
                ws.Cells(mergeStart, "B").VerticalAlignment = xlCenter
                ws.Cells(mergeStart, "B").HorizontalAlignment = xlCenter
            End If
            mergeStart = i
        End If
    Next i
    
    ' 경고 메시지 다시 활성화
    Application.DisplayAlerts = True
    
    MsgBox "셀 병합이 완료되었습니다!", vbInformation
End Sub