반응형

전체 글 574

Range.AutoFilter Method(2) - Field, Criteria, Operator, SubField, VisibleDropDown

(2) expression.AutoFilter(field, criteria1) In expression.AutoFilter method, a Field value should be inputted after :=(colon and equals) after Field like Field:=2 without parentheses Add below macro to existing macro. Sub autofilter_field1() ActiveCell.AutoFilter Field = 2 End Sub Module1 is shown like below. If you run autofilter_field1 sub procedure, it occurs errors that 'Variable is not defi..

EXCEL - VBA 2023.03.12

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

다. 복사할 범위로 여러 셀 지정후 붙여 넣을 범위에 붙여 넣는 매크로 작성 CopyRange가 2차원 배열이므로 2차원 배열에 맞게 매크로를 작성하였습니다. Sub FilteredRange_Copy5() Range("a2").Select If Not ActiveSheet.FilterMode Then Selection.AutoFilter 2, "가락1*" Set CopyRange = Application.InputBox("복사할 범위를 선택하세요.", Type:=8) Set PasteRange = Application.InputBox("붙여넣을 첫번째 셀을 선택하세요.", _ Type:=8, Default:=Range("a2").Address(0, 0)) Set PasteRange = Range(Past..

EXCEL - VBA 2023.03.10

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

이번에는 한 열이 아니라 25행에서 30행에 있는 A부터 K까지 열을 복사해서 붙여 넣기를 해보겠습니다. 1. Rows() 함수 이용 가. 모듈 삽입 줄 전체를 복사하는 것은 Rows 함수를 이용하여 쉽게 구현할 수 있습니다. 먼저 개발도구 - Visual Basic을 클릭해서 Visua Basic Editor로 들어간 다음 '서울시 지역 ....xlsx 파일이 선택된 상태에서 삽입 - 모듈을 누르거나 사용자 정의 폼 등 삽입을 위한 콤보 상자 버튼을 누른 후 모듈을 삽입합니다. 나. 매크로 작성 Range.AutoFilter Method(6) - 필터된 영역에 붙여넣기(1)의 FilteredRange_Copy3 sub 프로시저를 참고해서 만들었는데, CopyRange로 복사할 행의 한 열만 선택하도록 ..

EXCEL - VBA 2023.03.09

Range.AutoFilter Method(5) - 필터된 영역에 붙여넣기(1)

1. 필터링된 경우에도 보이지 않는 셀까지 데이터가 붙여지는 문제점이 있음 위와 같은 데이터가 있을 경우 동명을 가락1동으로 필터링하면 아래와 같이 가락1동 관련 데이터만 표시되는데, H25셀부터 H34셀까지의 내용을 복사한 후 H2셀에 붙여 넣으면 10개를 복사했는데, H2셀부터 H9셀까지 6개만 붙여 넣어져서 4개는 사라졌습니다. 원인은 7행부터 8행까지와 10행부터 11행까지 숨겨진 행에도 붙여 넣어져서 그렇습니다. 홈 탭 > 정렬 및 필터 > 지우기를 눌러 모든 데이터를 표시하면 필터링된 경우에도 보이는 셀에만 복사되는 것이 아니라, 2행부터 11행까지 연속적으로 붙여 넣기가 됩니다. 그러나, 필터링된 데이터를 다른 곳에 붙여 넣는 것은 문제가 없습니다. 예를 들어 가락1동으로 필터링된 상태에서 ..

EXCEL - VBA 2023.03.08

Range.AutoFilter Method(4) - SpecialCells(xlCellTypeVisible)(1)

필터로 조건을 걸면 조건에 해당되지 않는 행은 보이지 않고 조건에 맞는 행만 보이기 때문에 SpecialCells(xlCellTypeVisible)으로 VBA에서 데이터를 처리해야 합니다. 1. SpecialCells(xlCellTypeVisible) SpecialCells(xlCellTypeVisible)란 홈 탭 > 편집 그룹에 있는 찾기 및 선택을 누르고, 아래에서 이동 옵션을 누르면 나오는 이동 옵션 중 '화면에 보이는 셀만'에 해당합니다. 나머지 이동 옵션은 아래와 같습니다. 이름 값 설명 xlCellTypeAllFormatConditions -4172 조건부 서식 - 모두 xlCellTypeAllValidation -4174 데이터 유효성 - 모두 xlCellTypeBlanks 4 빈 셀 xl..

EXCEL - VBA 2023.03.07

Range.AutoFilter Method(3) - AutoFiterMode, FilterMode

1. AutoFilterMode 설정 및 해제 AutoFilterMode는 필터가 설정됐는지 여부를 저장한 값입니다. 다시 말해 DropDown Arrow가 표시되면 True이고, 없다면 False를 반환합니다. ActiveCell.AutoFilter를 실행하면 토글 기능이기 때문에 필터가 설정된 경우는 해제하고, 해제됐다면 설정을 반복합니다. Sub autofilter_set1() ActiveCell.AutoFilter ' If ActiveSheet.AutoFilterMode = False Then ' ActiveCell.AutoFilter ' End If End Sub 그러나 아래 주석을 풀고, ActiveCell.AutoFilter는 주석처리하고 실행하면 Sub autofilter_set1() ' ..

EXCEL - VBA 2023.03.06

Range.AutoFilter Method(2) - Field, Criteria, Operator, SubField, VisibleDropDown

(2) expression.AutoFilter(field, criteria1) expression.AutoFilter 안에 field가 있지만 명령어로 입력할 때는 괄호 없이 field:=2식으로 field다음에 :=을 입력하고, 필드 순번을 기재합니다. 또한 field만 값을 지정하면 activecell.autofilter와 결과가 같기 때문에 criteria1:="개포1동"이라고 조건까지 같이 지정하는 것이 바람직합니다. Sub autofilter_field1() ActiveCell.AutoFilter field:=2 , Criteria1:="개포1동" End Sub 1편에서도 언급했지만 A열 왼쪽에 빈 열을 삽입해도 동명의 필드는 2로 변함이 없습니다. 만약 autofilter_expression6..

EXCEL - VBA 2023.03.03

Range.AutoFilter Method(1) - expression.AutoFilter

1. 구문 VBA에서 사용하는 AutoFilter 메서드의 구문은 아래와 같습니다. expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown) ㅇ expression : Range 오브젝트를 반환하는 표현, 예, ActiveCell, Selection, Range("A1") 등 ㅇ Field : filter를 배치하려고 하는 영역의 offset(상대적 위치) 순번(index)으로 목록의 가장 왼쪽이 1 임. 따라서, 목록(list)이 A열부터 시작한다고 하면 A열이 1이지만, B열부터 시작한다고 하면 B열이 1이 됨 ㅇ Criteria1 : 조건1 ㅇ Operator : 필터에 적용되는 조건과 관련된 연산..

EXCEL - VBA 2023.03.02
반응형