-
댓글로 달려다가 글이 길어질거 같아서 새 글로 답니다.
다음 순서대로 하시면 문제가 없을듯 합니다.
1. 기존의 Code, Value를 셀(C1, D1)에 입력합니다.2. 다음에 해당되는 값들을 셀(C2, D2)부터 입력합니다.
3. VBE창을 다음순서대로 열어보시기 바랍니다.
Tools > Macros > Visual Basic Editor 아니면 Alt+F11 Shortcut으로 열어도 됩니다.
4. VBA를 다룬 경험이 없으시다면 여기서부터는 좀 어려울수 있습니다. 하지만 자세히 보시면 어려울게 없으니 따라 하시면 됩니다.4.1 왼쪽 윗부분 창을 보시면 현재 열려있는 파일이 보입니다. 그리고 Treeview 아래쪽으로 보면 Sheet1, Sheet2, Sheet3순으로 나열되어 있을겁니다. 파일을 클릭한다음 Mouse 오른쪽을 눌러보시면, 메뉴상자가 나오고 중간쯤에 “Insert”가 있습니다.
4.2 “Insert”를 클릭하면 오른쪽에 다시 “User Form”, “Module”, “Class Module”이 나옵니다. 거기에서 “Module”을 선택하시면 현재 파일 아래에 “Module1″이 생성됩니다.
4.3 “Module1″을 클릭하시고, 오른쪽 윈도우로 옮기십시오. 그다음에 아래 있는 코드를 복사해서 붙여넣기 하세요.
Option Explicit
Sub AnalyzeData()
Dim i, j, k, m As Longk = Range(“D65536”).End(xlUp).Row
‘ Delete all empty rows in column “D”
For m = k To 2 Step -1
If Range(“D” & m) = “” Then
Range(“D” & m).EntireRow.Delete
End If
Next mj = Range(“D65536”).End(xlUp).Row
‘ Delete existing data
Columns(“F:G”).Clear‘ Add a header
Range(“F1:G1”) = Array(“Code”, “Value”)
For i = 2 To j – 1
Select Case Abs(Range(“D” & i)) – Abs(Range(“D” & i + 1))
Case Is > 0
Range(“F” & i) = Range(“C” & i)
Range(“G” & i) = Abs(Range(“D” & i))
Case Is = 0
Range(“F” & i) = Range(“C” & i)
Range(“G” & i) = Abs(Range(“D” & i))Case Is < 0
Range(“F” & i) = Range(“C” & i + 1)
Range(“G” & i) = Abs(Range(“D” & i + 1))
End Select
Next i
End Sub5. F5키를 이용해서 위 코드를 실행하시면 별 이상 없이 원하는 결과값들을 확인하실 수 있을 겁니다.
파일을 올릴수가 없어서 글로 설명하려니 길어졌습니다. 파일을 원하시면 이메일주소 올려주세요. 보내드리겠습니다.
도움이 되셨으면 합니다.