300x250
1. 예제파일 작성
1) 노란색 기준으로 e1, e3 데이터 정리하기
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
57
58
|
Sub CHECKTT()
Dim dataname(3) As String '배열정의
dataname(1) = "e2"
dataname(2) = "e1"
dataname(3) = "e3"
Dim datanum(3) As Integer
last_column = Cells(7, Columns.Count).End(2).Column ' 마지막 열 찾기
last_row = Cells(Rows.Count, 1).End(3).Row
posi = 6 + 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
Exit For 'for문 중간에 나가기
End If
Next
Next
data_standard = datanum(1) '기준데이터 설정
k = 7 '데이터 시작 행
Condition = k
kk = 0 '열
For j = 2 To UBound(dataname, 1)
For i = 8 To last_row
If Cells(i, data_standard).Value = " " Then '데이터 띄어쓰기 있는 빈칸이면 스킵한다.
Exit For
End If
If (CDbl(Cells(i, data_standard).Value)) = 0 Then
'k = k + 2 ' 데이터 2개씩
k = k + 1 ' 데이터 1개씩
kk = 0
'basedata = Cells(i, datanum(j) - 1).Value
End If
Cells(k, posi).Value = dataname(j)
kk = kk + 1
If k > Condition Then
Cells(k, posi + kk).Value = Cells(i, datanum(j)).Value
'Cells(k + 1, posi + kk).Value = Cells(i, datanum(j) - 1).Value - basedata
End If
Next
Next
MsgBox ("완료")
End Sub
|
cs |
3. 결과
300x250
'엑셀 > VBA' 카테고리의 다른 글
vba-30초봉 분봉으로 변환 (0) | 2024.03.10 |
---|---|
VBA - 30초봉 계산하기/MAX/MIN/RANGE (0) | 2024.03.09 |
VBA-DATA 조건으로 나머지 데이터값 가져오기 (0) | 2024.02.03 |
VBA - 데이터 변경지점의 값을 정리하기/가져오기 (0) | 2024.02.03 |
엑셀 vba/데이터 한열에 정리하기 (0) | 2023.11.12 |