반응형

redim 3

여러 가지 조건을 만족하는 값을 찾을 때(3) - 동적 배열을 이용한 속도 개선

동적 배열을 이용해서 사용자 정의 함수 코드를 수정했더니 훨씬 속도가 빨라졌습니다. 1. 사용자 정의 함수 구문 가. 기존 코드 Option Explicit Option Base 1 Function multi_vlookup(lookup_value, lookup_array, return_array As Range) Dim i As Double '배열은 그대로 두고, 범위일 경우 배열로 변환 Dim Range_to_Array As Variant Debug.Print (vbCrLf & "범위 배열 변환1 : " & Now()) Range_to_Array = lookup_array For i = 1 To UBound(Range_to_Array) If i >= 2 And Len(Range_to_Array(i, 1..

EXCEL - VBA 2023.07.27

Range.AutoFilter Method(8) - 필터된 영역에 붙여넣기(2-3)

복사할 범위와 붙여 넣을 범위가 모두 필터링된 경우에 복사해서 붙여 넣기를 다뤄보겠습니다. 1. 작업 내용 사례로서 적합한 데이터는 아니지만 첫 번째 시트에는 가락2동으로 필터 된 데이터가 있고, 두 번째 시트는 가락1동으로 필터 된 데이터가 있어서 첫 번째 시트의 내용을 복사해서 두 번째 시트에 붙여 넣으면 9행이 아니라 숨겨진 행인 7,8행에 붙여 넣기가 됩니다. 따라서, 매크로를 작성해서 처리해야 합니다. 2. 논리 복사할 범위도 필터링되어 있기 때문에 for c in PasteRange for d in CopyRange 라고 CopyRange에서 화면에 보이는 셀(범위)만 하나씩 실행하는 것을 생각할 수 있는데, 이렇게 하면 이중 반복문이므로 붙여 넣을 범위의 행수 * 복사할 범위의 행수만큼 반복..

EXCEL - VBA 2023.03.13

엑셀 VBA - 배열(2)

5. ReDim 가. 정의 ReDim을 배열의 크기를 재설정하는 것입니다. 처음에는 배열의 크기를 모르거나 배열의 크기가 유동적으로 변하는 경우 사용합니다. 나. ReDim 문 데이터는 아래와 같이 작성했습니다. Dim intNum(3) As Integer라고 이미 배열의 크기를 선언한 상태에서 ReDim intNum(5)라고 하면 아래와 같이 에러가 발생합니다. 따라서, 배열의 크기는 지정하지 않고, Dim intNum() as integer라고 한 다음 ReDim intNum(5)라고 해야 에러가 발생하지 않습니다. 그다음부터는 ReDim intNum(6)이라고 해도 에러가 발생하지 않습니다. Option Explicit Option Base 1 Sub 변수선언() Dim i As Integer Di..

EXCEL - VBA 2022.12.07
반응형