<문제>
SHEET1의 내용을 바탕으로 SHEET2에 추가된 필드까지 포함하여 입력하시오.
- 일련번호는 오름차순으로 1부터 입력하시오.
- 주문번호는 요청일과 일련번호를 기준으로 다음과 같은 패턴으로 입력하시오.
'20010101_0001'
날짜는 숫자만 기록, 일련번호는 4자리로 만들어 입력.
만약 일련번호가 1이라면 앞에 자릿수만큼 ‘0’을 채우시오.
Sub 엑셀코딩_E01()
Dim OA_Row_Count, I, O_SEQ As Integer
Dim ORDER_NUM, TEMP_SEQ As String
OA_Row_Count = Worksheets(“Sheet1”).Cells.SpecialCells(xlLastCell).Row
For I = 2 To OA_Row_Count
O_SEQ = I - 1
Select Case Len(O_SEQ)
Case 1
TEMP_SEQ = “0000” & O_SEQ
Case 2
TEMP_SEQ = “00” & O_SEQ
Case 3
TEMP_SEQ = “0” & O_SEQ
Case 4
TEMP_SEQ = O_SEQ
End Select
ORDER_NUM = Replace(Worksheets(“Sheet1”).Cells(I, 1).Value, “-”, “”) & “_” & TEMP_SEQ
Worksheets(“Sheet2”).Cells(I, 1).Value = O_SEQ
Worksheets(“Sheet2”).Cells(I, 2).Value = ORDER_NUM
Worksheets(“Sheet2”).Cells(I, 3).Value = Worksheets(“Sheet1”).Cells(I, 5).Value
Worksheets(“Sheet2”).Cells(I, 4).Value = Worksheets(“Sheet1”).Cells(I, 6).Value
Worksheets(“Sheet2”).Cells(I, 5).Value = Worksheets(“Sheet1”).Cells(I, 9).Value
Worksheets(“Sheet2”).Cells(I, 6).Value = Worksheets(“Sheet1”).Cells(I, 7).Value
Worksheets(“Sheet2”).Cells(I, 7).Value = Worksheets(“Sheet1”).Cells(I, 8).Value
Worksheets(“Sheet2”).Cells(I, 8).Value = Worksheets(“Sheet1”).Cells(I, 3).Value
Worksheets(“Sheet2”).Cells(I, 9).Value = Worksheets(“Sheet1”).Cells(I, 1).Value
Worksheets(“Sheet2”).Cells(I, 10).Value = Worksheets(“Sheet1”).Cells(I, 2).Value
Next
End Sub
주문번호를 생성하기 위해 변수를 선언합니다.
이때 주문번호는 문자형이 되어야 합니다.
일련번호는 자동증가변수 I를 활용합니다.
일련번호는 1부터 시작되고 자동증가변수가 2부터이므로 -1을 하여 선언된 일련번호 변수 O_SEQ에 저장하고 입력하면 1부터 차례로 입력됩니다.
변수 TEMP_SEQ는 일련번호의 자릿수를 파악하여 4자리로 만들기 위한 임시 변수입니다.
조건문을 활용하여 O_SEQ(일련번호)의 길이(LEN)를 확인하고 부족한 자릿수만큼 ‘0’을 입력하여 완성합니다.
요청일의 경우도 REPLACE 함수를 활용하여 “-”값을 변환합니다.
그리고 최종적으로 주문번호 변수(ORDER_NUM)에 담습니다
조금 복잡해 보이긴 하지만 충분히 반복하여 풀어보면 크게 어렵지 않다는 것을 확인할 수 있습니다.
정답 예제 파일 공유합니다. ~