키워드의 카테고리 찾기 키워드를 입력하면 그 키워드가 어떤 의미인지를 찾아주는 기능이 필요할 때가 있습니다. 머신러닝 같은 기법으로 해결 해볼 수도 있지만 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 행열 전환 하는 법일단은 결론부터 말하면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..
행 개수 자동으로 계산해서 값 넣어주는 매크로 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..
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..
ExecuteExcel4Macro()함수를 이용하면 엑셀 파일을 열지 않고 안에 있는 내용만 가지고 올 수 있습니다. Sub main() filePath = "c:\practice\" Filename = "삼정.xlsx" sheetName = "Sheet3" For i = 4 To 8 Msg = "'" & filePath & "[" & Filename & "]" & sheetName _ & "'!" & Range("B" & i).Range("a1").Address(, , xlR1C1) Debug.Print Msg value_01 = ExecuteExcel4Macro(Msg) Debug.Print value_01 Next End Sub 아래는 바탕화면에 있는 'separated_row_data_sheet...
VBA Array는 사이즈를 지정 해줘야 하기 때문에 불편합니다. Array말고 map형태로 데이터를 저장할 수 있는 기능이 있었습니다. key, value로 데이터를 저장하고 key로 value에 접근 할 수 있습니다. Dim c As Collection Set c = New Collection c.Add "Data1", "Key1" c.Add "Data2", "Key2" c.Add "Data3", "Key3" 'Insert data via key into cell A1 Range("A1").Value = c.Item("Key2") 출처 http://stackoverflow.com/questions/915317/does-vba-have-dictionary-structure end.
Excel VBA 지정한 폴더 안에있는 파일명 출력하는 예제 Sub Main() dirName = "c:\practice\" Call printFileList(dirName) End Sub Sub printFileList(folderName) Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim i As Integer 'Create an instance of the FileSystemObject Set objFSO = CreateObject("Scripting.FileSystemObject") 'Get the folder object Set objFolder = objFSO.GetFolder(folderName) i = 1 'loo..
개요 VBA로 기능을 만들다 보면 데이터가 들어있는 시트에 데이터가 몇개가 있는지 그 개수가 필요할 때가 많습니다. 그 방법에 대해 알아보았습니다. 결론부터 말하면 행개수 = Range("a1", Range("a1").End(xlDown)).Rows.Count 열개수 = Range("a1", Range("a1").End(xlToRight)).Columns.Count 이렇게 구하면 됩니다. 시트를 특정하고 싶다면 행개수 = Sheets("시트명").Range("a1", Range("a1").End(xlDown)).Rows.Count 위와 같이 앞에 Sheets()를 이용해 시트를 정해주시면 됩니다. 아래와 같이 21행 7열의 sheet가 있다고 할 때 이 sheet의 크기를 구하는 sub routine은 ..
- Total
- Today
- Yesterday
- 이직
- 도커각티슈박스
- 도커컨테이너
- 2017 티스토리 결산
- Sh
- Linux
- vim
- 싱가폴
- docker container tissue
- 도커티슈박스
- 도커각티슈케이스
- docker container case
- shellscript
- docker container tissue box
- 개발자
- 도커티슈케이스
- docker container
- docker container whale
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |