300x250
다른 시트의 데이터를 가져와서 정리해보자.
0. 예제 파일 작성하기
1) 시트 3에는 3줄의 데이터를, 시트2에는 2줄의 데이터, 시트1에는 1줄의데이터를 작성하고,
summary 탭에 데이터들을 모아보자.
1. 코드작성
1) 다른 시트의 데이터들을 모아서 시트이름과 함께 작성해보자.
2) sheet 라는 문자열이 시트이름에 포함되어 있어야 코드가 진행된다.(InStr)
-. InStr 는 문자열이 없으면 0을 출력한다.
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
|
Sub 다른시트데이터가져오기()
Dim ws_count As Integer
Dim ws_name As String
ws_count = Worksheets.Count
data_ct = 0
For n = 1 To ws_count
ws_name = Sheets(n).Name
'summery sheet 에 데이터 정리하기
For k = 0 To 5
' 데이터 유무 확인위치
data_position = 3 * k + 2
'내가 원하는 시트인지, 가져올 데이터가 있는지 확인
If InStr(ws_name, "Sheet") > 0 And Sheets(ws_name).Cells(2, data_position) > 0 Then
'데이터 정리 offset
data_ct = data_ct + 1
'MsgBox (data_ct)
'MsgBox (data_ct_sheet - 1 + data_ct)
'summary 시트에 데이터를 요약하자
With Sheets("summary").Cells(2, 2)
' 시트이름가져오기
.Offset(0, data_ct - 1) = ws_name
'시트 데이터 가져오기
.Offset(1, data_ct - 1) = Sheets(ws_name).Cells(2, 3 * k + 2)
.Offset(2, data_ct - 1) = Sheets(ws_name).Cells(3, 3 * k + 2)
.Offset(3, data_ct - 1) = Sheets(ws_name).Cells(4, 3 * k + 2)
End With
End If
Next
Next
End Sub
|
cs |
2. 결과
300x250
'엑셀 > VBA' 카테고리의 다른 글
엑셀 VBA - 조건에 맞는 sheet 전체 이름 가져오기 (0) | 2023.10.10 |
---|---|
엑셀 vba/시트 없으면 시트 생성하기/On Error Resume Next/Sheets.Add.Name (0) | 2023.08.13 |
엑셀(vba)/다른 시트 데이터 복사 붙여넣기/시트 변수명으로 사용하기 (0) | 2023.08.13 |
엑셀 vba/시트이름 가져오기/시트이름 변수에 넣어 활용하기 (0) | 2023.08.13 |
엑셀 vba/필터된 셀에 붙여넣기/보여지는셀에만 붙여넣기/필터숨겨진셀에 복사됨 (0) | 2023.08.10 |