목록전체 글 (561)
rand(life)
출처는 아래에. Option Explicit Sub SendEmailWithrRange() Const olMailItem = 0 Dim rngToSend As Range, r As Range Dim FileName As String, FileName2 As String Dim strHtml As String Set rngToSend = Selection strHtml = RangeToHTML(rngToSend) With Sheets("address") For Each r In .Range("a1", .Cells(Rows.Count, "a").End(xlUp)) With CreateObject("Outlook.Application").CreateItem(olMailItem) .To = r.Value .Su..
Option Explicit Sub 순열조합_매크로() Dim 항목배열 As Variant, wf As WorksheetFunction Set wf = WorksheetFunction ' 엑셀 시트함수 Application.ScreenUpdating = False ' 기존자료 삭제 및 머릿글 Range("d1").CurrentRegion.Offset(1).Delete xlUp ' 항목 셀범위를 1차원 배열로 변경 하기 위한 작업 With Range("a2", Cells(Rows.Count, "a").End(xlUp)) 항목배열 = wf.Transpose(.Value) ' 가로세로 바꿈 If .Columns.Count > 1 Then ' 가로면 가로세로를 한번 더 바꿈 항목배열 = wf.Transpose(..
function myFunction() { var sht = SpreadsheetApp.getActive().getSheetByName("시트1"); for (var i = 50; i >= 1; i--) { var str = sht.getRange(i, 3).getValue(); if (str == "74Y" || str == "74N" || str == "77L" || str == "") { sht.deleteRow(i); } } } 엑셀과 비슷하지만 전혀 다른 google apps script를 공부할 필요를 조금씩 느끼고 있다. 여기저기 찾아보고 겨우 만든 것이 저 위의 코드 C열에 있는 각 셀값이 특정한 문자일때, 또는 빈칸일 때 행 전체를 삭제하는 코드이다. javascript 기반이라니, Vi..
Option Explicit Sub Jo_sort() Dim rD As Range Dim jList As Object Dim i As Long, iCol As Long 'Application.ScreenUpdating = False Set rD = Range("a1").CurrentRegion '데이터 범위 iCol = rD.Columns.Count Set jList = CreateObject("system.collections.sortedlist") With jList For i = 1 To rD.Rows.Count Step 2 Dim sT As String sT = rD.Cells(i, 1).Value & rD.Cells(i, 3).Value If Not .contains(sT) Then .Add s..
엑셀에서 매크로를 실행하여 특정 폴더안의 모든 워드 문서 중에서 본문에 특정한 단어가 있는지 검사한 후 해당 단어가 있는 문장과 문장의 첫단어가 있는 라인 수 해당 파일의 이름을 출력하는 매크로이다 VB편집기에서 도구 - 참조 클릭하고 Microsoft Word Object Library에 체크를 해야 작동한다. Option Explicit Sub macro() Dim WApp As Object, WDoc As Object, WDR As Object Dim ExR As Range, sPath As String Dim str2Find As String, myData As String, sFname As String, myfile As String Dim myline As Long Set ExR = Rang..
파워쿼리를 이용하여 다른 파일에 들어있는 데이터를 취합하는 방법은 이전에 올린 적이 있습니다. 이번에는 같은 파일안에 있는 여러 시트에서 데이터를 취합하는 방법입니다. 엑셀 2016 버전 기준으로 작성하였습니다. 엑셀 2010 ~ 2013버전은 추가기능을 다운로드하여 설치하면 사용할 수 있습니다. (2007버전 이하에서는 파워쿼리를 사용할 수 없습니다.) 먼저, 각 시트의 데이터를 “표(Table)”로 만들어야합니다.여기서 “표”는 일반적으로 우리가 사용하는 의미의 ‘가로 세로 사각형 안에 데이터를 집어넣는 것’이 아니라, 엑셀에서 특수한 기능을 하는 표입니다. 표로 만들어 두면 좋은 점이, 나중에 일부 시트에서 값의 변경이 생겼을때, 일일이 모든 시트를 다시 취합할 필요 없이, ‘새로고침’ 한 번으로 ..
네이버 지식인 노하우에 쓴 글입니다. 2016버전부터 정식으로 엑셀의 기능으로 들어온 파워쿼리를 이용해서많은 일을 간단하게 할 수 있게 되었습니다. 예를 들어, 여러개의 파일을 통합하여 하나의 파일을 만드는 일 같은 경우, 이전에는 VBA(매크로)를 이용해야했었지만, 파워쿼리를 이용하면 VBA를 몰라도 파일을 통합하는 일을 손쉽게 할 수 있습니다. 단순 통합 뿐 아니라, 데이터를 용도에 맞게 적절히 변형하여 통합파일을 만들 수도 있습니다. 아래는 특정 폴더 안에 있는 모든 csv 파일을 하나로 통합하고, 첫번째 열을 추가하여, 첫번째 열에는 파일명 중 숫자 부분을 넣는 작업에 대한 설명입니다. 엑셀 2016 버전 기준으로 작성하였습니다. 엑셀 2010버전 이상은 추가기능을 다운로드하여 설치하면 사용할 수..
네이버 지식인 노하우에 쓴 글입니다.100% 제가 한 것은 아니고, 외국의 한 사이트에 있는 방법을 가져왔습니다. 이중 유효성 검사를 구글 드라이브 시트에서 만드는 방법입니다. 엑셀에서는 indirect 함수를 이용하여 만들 수 있습니다. 참고: http://ttend.tistory.com/251 구글드라이브에서는 이름정의나 indirect함수가 엑셀과 똑같이 작동하지 않아서 위의 방법을 그대로 적용할 수 없습니다. 아래와 같이 해보세요 1. 일단 아래와 같은 표를 만들어 둡니다. 어느 셀 (여기서는 F2셀)에서 A사를 선택하면다른 셀(여기서는 G2셀)에서 A사의 제품인 '초콜렛,초콜렛바,사이다,콜라'가 유효성검사 목록으로 뜨게 만들겁니다. 2. F2셀을 선택하고 상단 메뉴에서 데이터 - 데이터 확인하고..
네이버 지식인 노하우에 쓴 글입니다.위의 그림처럼 D2셀에 사진의 이름을 주면, 그 이름과 같은 이름의 사진을 D5셀에 나타나도록 하는 방법입니다. 별도의 시트에 위와 같이 사진 이름과 사진을 매칭시켜 정리해두어야 합니다. 그 다음, 사진 하나를 아무거나 복사합니다. (Ctrl-C) 이제 사진이 나타나야하는 셀을 선택하고 그림으로 붙여넣기를 합니다. "붙여넣기"에서 역삼각형을 클릭하면 나타나는 메뉴에서 "그림"을 선택하면 됩니다. 이제 그림을 셀의 크기에 맞게 적당히 조정해줍니다. 수식 - 이름관리자로 가서 이름정의를 해줍니다. 상황에 따라 다르겠지만, 첨부화일의 경우에는 "사진위치"는 =INDEX(사진범위,MATCH(Sheet2!$D$2,사진이름,0),1)"사진범위"는 =데이타!$C$2:$C$4"사진이..
지식인 질문에 대한 답"한 시트에 여러 페이지가 있는데, 각 페이지를 별개의 시트로 나누는 방법"에 대한 문의였다. HpageBreak가 페이지 나누기니까, 그것을 기준으로 순환문을 돌리면 된다고 간단히 생각해서, 답변을 주려고 했는데예제 파일을 보니 시트 안에 글자만 있는 것이 아니라 도형과 차트들이 들어있었다문제는, 도형과 차트는 시트 복사를 하면 문자처럼 자동으로 같이 따라 오는 것이 아니라각 개체별로 따로 복사해서 위치를 조정해주어야한다는 점이었다. 그래서 작업의 순서를 다음과 같이 잡았다 1. 페이지나누기 갯수대로 원본시트복사하기2. 해당 각 페이지의 범위 설정 (eg. 2페이지는 15행~30행)3. 범위에 들지 않는 페이지는 삭제 (2페이지가 아닌 1~14, 31~끝은 삭제)4. 원본 시트에서..