엑셀/VBA
VBA-DATA 조건으로 나머지 데이터값 가져오기
gongdol
2024. 2. 3. 11:10
300x250
1. 예제파일
1) 빈칸은 띄어쓰기로 들어가있는 파일이다.
2) DATA1 기준으로 4000 ->0 으로 갈때 나머지 데이터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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
Sub CHECKTT()
Dim dataname(3) As String '배열정의
dataname(1) = "data1"
dataname(2) = "data2"
dataname(3) = "data3"
Dim datanum(3) As Integer
last_column = Cells(7, Columns.Count).End(2).Column ' 마지막 열 찾기
last_row = Cells(Rows.Count, 1).End(3).Row
posi = 200 + UBound(dataname, 1)
For ii = 1 To UBound(dataname, 1)
For fi = 1 To last_column
If Cells(7, fi) = dataname(ii) Then
datanum(ii) = fi
Cells(ii, posi).Value = dataname(ii)
Exit For 'for문 중간에 나가기
End If
Next
Next
data_standard = datanum(1) '기준데이터 설정
k = 2
For i = 10 To last_row
If Cells(i, data_standard).Value = " " Then '데이터 띄어쓰기 있는 빈칸이면 스킵한다.
Exit For
End If
If (CDbl(Cells(i, data_standard).Value) - CDbl(Cells(i - 1, data_standard).Value)) < -3000 Then
Time_ = CDbl(Cells(i, data_standard - 1).Value)
For j = 1 To UBound(dataname, 1)
For ik = 11 To last_row
If CDbl(Cells(ik, datanum(j) - 1).Value) > Time_ Then
Cells(j, posi + k - 1).Value = Cells(ik, datanum(j)).Value
Exit For
End If
Next
Next
k = k + 1
End If
Next
MsgBox ("완료")
End Sub
|
cs |
3. 결과
-. 원하는 데이터를 가져왔다.
300x250