엑셀/VBA 38

VBA - 30초봉 계산하기/MAX/MIN/RANGE

1. 예제파일 작성 1) 아래 시간기준으로 30초마다 CLOSE 데이터를 OHLC 계산한다. 2. 코드작성 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455Sub minute_bong() last_row = Cells(Rows.Count, 1).End(3).Row start_pos = 10 '시작위치 FOR_IDX = 3 c = FOR_IDX pre_index_row = FOR_IDX - 1 START_COND = 1 For ii = FOR_IDX To last_row '1. 시간계산하기 Cells(ii, start_pos).Value = Cells(ii, 2).Value ..

엑셀/VBA 2024.03.09

VBA-데이터 조건으로 데이터 잘라서 정리하기

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 ' 마지막..

엑셀/VBA 2024.02.29

VBA-DATA 조건으로 나머지 데이터값 가져오기

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_colum..

엑셀/VBA 2024.02.03

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

데이터가 변경되는 시점의 값을 가져와서 어떤값으로 변경되었는지 확인한다. 응용하면, 시간을 가져올 수 있다. 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(3) As String '배열정의 dataname(1) = "data1" dataname(2) = "data2" dataname(3) = "data3" last_column = Cells(..

엑셀/VBA 2024.02.03

엑셀 vba/데이터 한열에 정리하기

1. 코드작성하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Sub convert_data_tocolumn() Dim COPYRANGE As Range Dim pasteRANGE As Range Dim i As Integer Set COPYRANGE = Application.InputBox("변경시킬데이터 선택", Type:=8) Set changeRANGE = Application.InputBox("변경된 데이터 한 셀 선택", Type:=8) i = 0 Application.ScreenUpdating = False For Each Rng In COPYRANGE.Rows Rng.Copy changeRANGE.Offset(i, 0).P..

엑셀/VBA 2023.11.12

엑셀 VBA/필터된 셀을 필터된 곳에 붙여넣기/보여지는 셀에만 붙여넣기

1. 예제 준비 1) 아래와 같이 예제파일을 만든다. 2) 필터를 걸면 아래와 같다. 왼쪽 필터된 내용을 오른쪽 필터된 곳에 붙여넣어보자 -> no 1, no3 의 데이터를 복사 붙여넣자. 2. 코드준비 1) 코드가 로스가 좀 있어서 시간이 걸린다. 나중에 배열 활용 필요함. 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 Sub FILTERED_PASTE() Dim COPYRANGE As Range Dim pasteRANGE As Range Dim i As Integer Set COPYRANGE = Application.InputBox("복사할범위 선택", Type:=8) Set pasteRANGE = Application..

엑셀/VBA 2023.10.16

엑셀 VBA - 다른 시트 데이터 복사하기/범위 복사/정리하기

1. 엑셀 파일 만들기 - 모두라고 시트명만 데이터를 SUMMARY 시트에 가져와보자. 2. 코드작성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Sub find_all_sheetname() Dim ws As Worksheet Dim i As Integer i = 1 For Each ws In Worksheets If InStr(ws.Name, "모두") > 0 Then i = i + 3 ActiveSheet.Cells(2, i) = ws.Name Sheets(ws.Name).Range(Sheets(ws.Name).Cells(2, 2), Sheets(ws.Name).Cells(6, 4)).Copy Sheets("summary").Cells(3, i) End ..

엑셀/VBA 2023.10.10

엑셀 VBA - 조건에 맞는 sheet 전체 이름 가져오기

sheet 전체 이름들을 가져와보자. 1. 시트 여러개인 엑셀 파일을 만든다. 1) 모두라는 단어가 포함된 시트만 이름을 가져오자. 2. 코드작성 1) 모두 라는 단어가 포함된 시트만 시트명을 가져온다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Sub find_all_sheetname() Dim ws As Worksheet Dim i As Integer i = 1 For Each ws In Worksheets If InStr(ws.Name, "모두") > 0 Then ActiveSheet.Cells(i, 1) = ws.Name i = i + 1 End If Next ws End Sub Colored by Color Scripter cs 3. 결과

엑셀/VBA 2023.10.10