목록엑셀 (213)
rand(life)
중복제거와 정렬을 한번에 ArrayList ArrayList 이용 예제 https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=358765243 더보기 메서드 Add(Object) 개체를 ArrayList의 끝 부분에 추가합니다. BinarySearch(Int32, Int32, Object, IComparer) 지정된 비교자를 사용하여 정렬된 ArrayList의 요소 범위에서 요소를 검색하고 요소의 인덱스(0부터 시작)를 반환합니다. BinarySearch(Object) 기본 비교자를 사용하여 정렬된 전체 ArrayList에서 요소를 검색하고 요소의 인덱스(0부터 시작)를 반환합니다. -- 한번만 정렬한 후 검색을 빠르게 할 때 효과적 Bin..
제목을 자동으로 지식인에서 검색해서 제목을 나열해준다 지식인 마니또님의 답변이다.
셀안에 있는 특수문자만 제거하는 코드 지식인 답변에서 가져옴 Option Explicit Sub textchange() Dim c As Range Dim rSelect As Range Dim oReg As Object On Error Resume Next Set rSelect = Application.InputBox("영역 선택", "선택", Selection.Address, , , , , 8) If rSelect Is Nothing Then Exit Sub Set oReg = CreateObject("VBScript.RegExp") For Each c In rSelect.Cells If c.Value "" Then With oReg .Pattern = "[\\/:*?""|]" ''특수문자 추가 하시면 ..
순열 조합 매크로에 대해서는 지난번에 소개하였지만, 이번엔 약간 다른 경우이다. 출처는 여기이다. 보다시피, A그룹에서 하나, B그룹에서 하나, C그룹에서 하나, D그룹에서 하나씩만 꺼내와서 결과를 조합하는 것이다. 이것은 이전의 매크로를 가지고는 할 수 없는 작업이다. 아래와 같이 할수도 있을것이다. for i1 = 1 to 3 for i2 = 1 to 3 for i3 = 1 to 2 for i4 = 1 to2 Result = i1 & i2 & i3 & i4 next next next next 하지만 단점 두 개가 분명히 보인다. 일단 지금은 그룹이 4개이지만, 그룹이 100개가 된다면? 그리고, 각 그룹마다 요소의 갯수가 다르다. 다른 사람도 이런 고민을 했을텐데, 하면서 검색을 해보았는데, 바로 위..
핵심코드의 출처는 여기 이런 세 개의 파일이 있다고 하자. 그리고 이 세 개의 파일에 있는 데이터를 통합하여 아래와 같은 표를 완성해야한다고 하자. 왼쪽의 item이나 상단의 title이 파일마다 순서가 다르다. 그리고 모두 다 있는 것도 아니다. 이런 경우, 어떤 식으로 데이터를 모으겠는가? sumif, sumifs같은 것을 사용할 수도 있을 것이다. 그러나, 방금 말한 것처럼, item과 title의 구성 및 순서가 달라서 쉽지 않아보인다. 이런 경우 사용할 수 있는 것이 엑셀의 "통합" 기능이다. 데이터 탭에 있다. 이것을 누르면 이런 창이 뜨고, 여기서 참조 영역과 함수를 적절히 지정해주고 확인하면 된다. 그런데, 위의 표에서 보듯이 참조 영역이 불규칙적이어서, 일일이 파일을 열어서 확인을 해야한..
출처는 아래에. 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(..
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..