엑셀/VBA

VBA - 데이터 변경지점의 값을 정리하기/가져오기

gongdol 2024. 2. 3. 10:34
300x250

데이터가 변경되는 시점의 값을 가져와서 어떤값으로 변경되었는지 확인한다. 

응용하면, 시간을 가져올 수 있다. 

 

1. 예제 파일작성

  - 데이터 3개, 시간 3개 데이터를 구성한다. 엑셀로

  - 예를들면 data1에서는 데이터가 변경되는 2,3을 출력하기를 원한다. 

2. 코드작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub check_change()
    Dim dataname(3As String '배열정의
    dataname(1= "data1"
    dataname(2= "data2"
    dataname(3= "data3"
    
    last_column = Cells(7, Columns.Count).End(2).Column ' 마지막 열 찾기
    last_row = Cells(Rows.Count, 1).End(3).Row
    
    
    For ii = 1 To UBound(dataname, 1)
        For fi = 1 To last_column
            If Cells(7, fi) = dataname(ii) Then
                data_num = fi
                Exit For 'for문 중간에 나가기
            End If
        Next
        
        
        posi = 200 + UBound(dataname, 1'insert하면서 변경되어 추가됨.
        Cells(ii, posi).Value = dataname(ii)
        
        k = 0
        For i = 10 To last_row
            If (Cells(i, data_num).Value <> Cells(i - 1, data_num).Value) Then
                k = k + 1
                Cells(ii, posi + k).Value = Cells(i, data_num).Value
                
            End If
        Next
        
    Next
    MsgBox ("완료")
    
    
    
    
End Sub
 
cs

 

 

 

3. 결과

 

300x250