본문 바로가기

Excel VBA

(36)
해당 시트명이 없으면 sub 종료하는 로직 해당 시트명이 없으면 sub 종료하는 로직1234567891011121314151617Sub main() If sheetExists("raw_data") = False Then MsgBox ("raw_data 시트가 없습니다.") Exit Sub End If End Sub Function sheetExists(shtName As String, Optional wb As Workbook) As Boolean Dim sht As Worksheet If wb Is Nothing Then Set wb = ThisWorkbook On Error Resume Next Set sht = wb.Sheets(shtName) On Error GoTo 0 sheetExists = Not sht Is Nothing End F..
Excel VBA substring, indexOf 괄호 안에 있는 문자열 추출하기 Excel VBA substring, indexOf 괄호 안에 있는 문자열 추출하기 Sub bracket_test() str1 = "system(bla/bla2)" occurOpenBracket = InStr(str1, "(") occurCloseBracket = InStr(str1, ")") result = Mid(str1, occurOpenBracket + 1, occurCloseBracket - occurOpenBracket - 1) Debug.Print (result) End Sub end.
Excel VBA 키워드의 카테고리 찾기 키워드의 카테고리 찾기 키워드를 입력하면 그 키워드가 어떤 의미인지를 찾아주는 기능이 필요할 때가 있습니다. 머신러닝 같은 기법으로 해결 해볼 수도 있지만 vba로 단순하게 구현 해볼 수 있습니다. '거실', '수영장'을 입력하면 A열의 '행동'이 나오게 하는 기능이 필요하다고 했을때 아래 코드로 해볼 수 있습니다. get_카테고리_이름()이라는 VBA함수를 엑셀 시트에서 호출 합니다. Sub main() result = get_카테고리_이름("거실") MsgBox (result) End Sub Function get_카테고리_이름(키워드) 결과 = "결과가 없습니다." '해당 키워드가 들어있는 행의 a열 값 '7행 10열 에서 검색 For 행 = 1 To 7 For 열 = 1 To 11 셀값 = She..
Excel Vba Chart 행열 전환 하는 법 Excel Vba Chart 행열 전환 하는 법일단은 결론부터 말하면ActiveChart.PlotBy = xlColumns이거 또는ActiveChart.PlotBy = xlRows이거 둘중에 하나를 쓰면 된다. 이렇게 나오는 문제가 자주 있는데 위 속성을 조절 해서 이렇게 나오게 할 수 있다. 참고 소스코드는 아래와 같다.Sub drawChart(p_시트명) Range("A1:B11").Select ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select ActiveChart.SetSourceData Source:=Range(p_시트명 & "!$A$1:$B$11") ActiveChart.PlotBy = xlColumnsEnd Sub end.
고급필터 예제 고급필터 예제 Sub main_advanced() Call advancedFilter End Sub Sub advancedFilter() 끝열주소 = get컬럼주소(get가로개수("filter")) Sheets("filter").Range("a9:" & 끝열주소 & "10000").ClearFormats Sheets("raw_data").Range("A1").CurrentRegion.advancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("filter").Range("A1").CurrentRegion, CopyToRange:=Range("A8:" & 끝열주소 & "8"), Unique:=False End Sub Function get컬럼주소(p_col..
시트 삭제하고 특정 이름으로 추가하기 시트 삭제하고 추가하기 On Error Resume NextSheets("Sheet1").deleteSheets.Add.Name = "Sheet1" 메세지 없이 하기Application.DisplayAlerts = FalseSheets("Sheet1").deleteApplication.DisplayAlerts = True
행 개수 자동으로 계산해서 값 넣어주는 매크로 행 개수 자동으로 계산해서 값 넣어주는 매크로 1234567891011121314151617Sub 값넣기() '시트3번에 마지막행 구하기 Sheets("Sheet3").Select 행개수 = Sheets("Sheet3").Range("a1", Range("a1").End(xlDown)).Rows.Count '시트2번의 데이터를 마지막 행에 abcd열에 순서대로 넣기 받는사람 = Sheets("Sheet2").Range("a2").Value 보내는사람 = Sheets("Sheet2").Range("d4").Value 주소 = Sheets("Sheet2").Range("c10").Value 금액 = Sheets("Sheet2").Range("e16").Value Sheets("Sheet3").Range("a..
excel vba dictionary key, value로 값을 뽑고 저장할 수 있는 Dictionary Object 를 만들 수 있다. dictionary에는 또 다른 dictionary를 넣을 수 있다. Sub dictionaryTest() Dim dict_list As Object Set dict_list = CreateObject("Scripting.Dictionary") dict_list.Add "Apples", getItem Debug.Print dict_list("Apples")("apple") End Sub Function getItem() Dim dict_item As Object Set dict_item = CreateObject("Scripting.Dictionary") dict_item.Add "apple", 1 Set..