brunch

You can make anything
by writing

C.S.Lewis

by 별더하기 Mar 22. 2022

데이터 주고받기 실습문제

<문제>

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)에 담습니다

조금 복잡해 보이긴 하지만 충분히 반복하여 풀어보면 크게 어렵지 않다는 것을 확인할 수 있습니다.

정답 예제 파일 공유합니다. ~

https://youtu.be/YXx4VSSwpY4


매거진의 이전글 28강 - 데이터 주고 받기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari