분류 전체보기 (15) 썸네일형 리스트형 자주 쓰는 VBA 패턴 (4) : VBA로 index match 함수 구현하기 값을 매핑할때 대부분의 사람들은 보통 vlookup 함수를 사용하지만, 좀 더 엑셀을 잘 하는 사람들은 index-match라 불리는 합성함수를 더 자주 사용한다 ={INDEX(rng MATCH(lookupvalue, rng, 0))} . index match는 원리만 정확히 이해하면 다중조건, xlookup 등 폭넓게 활용 가능하다. index match나 vlookup 모두 Application.WorksheetFunction 매서드로 vba안에서 사용할 수 있다. 다만, 때때로 현업에서는 해당 매서드 없이 index match, vlookup과 같은 기능을 구현해야 될 경우가 종종 생긴다. (실무는 늘 제약사항이 존재한다) 아래의 코드는 WorksheetFunction 매서드 없이 vba에서 ind.. 첫번째 개인 프로젝트 히스토리 코딩 연습할 겸, 그리고 예전부터 만들오보고 싶은 프로그램이 있어서 만들어 보았습니다. 처음엔 무작정 VS Code를 열었는데, 코드 라인 보다도 더 중요한게 전체적인 컨셉과 구조를 잡는 것이더라고요. 코드는 깃허브에 공유했고 여기는 개발 노트들만 모아서 올릴 예정입니다. 개인적으로 의미 있는 기록이고, 또 공개함으로써 다른 분들에게도 참고가 되면 더 좋겠습니다. 프로그램 이름은 '배관용 계산기'입니다. 컨셉은 다음과 같습니다. Calculator for Piping and PipefitterIt performs 4 arithmetic operations like a general calculator, but if you enter piping material specifications instead o.. 자주 쓰는 VBA 패턴 (3) - 찾고 있는 값의 열 번호를 알파벳으로 반환 VBA로 코드를 짜다 보면, C에 개체 대신 반드시 Range 개체를 사용하고 싶을 때가 있다. Range 개체는 열 번호를 엑셀의 알파벳 값으로 받기 때문에 ( )안의 값 을 하드 코딩하지 않고 변수로 처리하려면 Range (Var1 & Var2) 또는 Range (var1& var2 & ":" & var3 & var4)과 같은 식으로 처리해야 된다. 이때 아래의 코드가 도움이 될 것이다.Function FindColLetter(hdr_row As Integer, search_value As Variant) As String Dim search_rng As Range Dim found_cell As Range Dim col_letter As String Set search_rng = ActiveShee.. 자주 쓰는 VBA 패턴 (2) - 마지막 행, 마지막 열 찾기 스프레드 시트라는 엑셀의 특성상 어떤 VBA 코드를 짜던 간에 꼭 쓰게 되는 구문입니다. (데이터분석용으로 사용한다면 더더욱) 마지막 행 찾기 dim last_row as integer last_row = Cells(Rows.Count, 1).End(xlUp).Row 1열(A열)의 마지막 행의 값을 last_row 변수에 정수형으로 반환 마지막 열 찾기 dim last_col as integer last_col = Cells(3, Columns.Count).End(xlLeft).Column ': 3행의 값이 들어있는 마지막 셀을 찾는다. 3행의 마지막 열의 값을 last_col 변수에 정수형으로 반환 1과 3에 각각 원하는 행, 열 번호를 입력하면 됩니다. 마지막 행 값을 찾을 때에는 열 번호를, 마지막.. 자주 쓰는 VBA 패턴 (1) - 찾는 값이 배열 안에 있는지 확인 파이썬에서는 va in list 형태의 명령어로 특정 값이 리스트에 있는지 확인할 수 있다. 아래의 코드는 vba에는 파이썬과 같은 리스트 자료형 없다. 배열에서 va in list와 같은 형태의 명령을 사용하기 위해 만든 함수이다. Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean Dim i For i = LBound(arr) To UBound(arr) If arr(i) = stringToBeFound Then IsInArray = True Exit Function End If Next i IsInArray = False End Function 이전 1 2 다음