반응형

EXCEL - VBA 122

표에서는 '복사한 셀 삽입'이 안되네요...

표를 자주 사용하지 않다 보니표에서 행을 복사한 후 마우스 오른쪽 버튼을 누르고 '복사한 셀 삽입' 메뉴를 누르면 '워크시트의 표에 있는 셀이 이동될 수 있기 때문에 이 작업은 수행되지 않습니다.'란 메시지가 나오고 복사한 행 삽입이 안된다는 것을 최근에 알았습니다. 확인을 눌러 창을 닫습니다. 1. 해결의 실마리 5행을 선택하고 마우스 오른쪽 버튼을 누르고 삽입 메뉴를 눌러 빈 행을 삽입한 후 4행을 복사한 후 5행에 붙여 넣으면 문제없이 잘 됩니다. 결론은 같은데 왜 막는지 모르겠네요. 2. '매크로 기록' 이용 구현매크로를 직접 작성할 수도 있지만,개발도구 - '매크로 기록'을 누르고, '매크로 저장 위치'를 '개인용 매크로 통합 문서'로 지정한 다음 행 삽입 - 위 행을 복사한 후 아래 행에 '복..

EXCEL - VBA 08:43:42

알PDF에서 페이지별로 시트를 나눌 수밖에 없는 이유

다시 생각해보니 엑셀은 한글과 달리 위, 아래의 열 너비가 다를 수 없으니시트를 합치는 것이 사실상 힘드네요.  위 파일도 Table1은 A열부터 F열까지로 되어 있는데, Tabel2는 A열에서 Q열까지로 되어 있고, Table3와 Table4는 똑같이 R열까지로 되어 있는데, Table3는 A열에 데이터가 있어서 넓고 R열은 좁으며, Table4는 A열에 데이터가 없어서 좁고 R열은 데이터가 있어서 넓습니다. 그러니, 위, 아래로 열 너비를 맞추기가 어렵고,따라서, 시트를 합치는 것도 불가능하네요. 너무 쉽게 '시트 하나로 만들지 않았다'고 아쉬움을 표시했네요.https://lsw3210.tistory.com/601 알PDF의 심박한 엑셀 변환 기능업무를 하는데 집계를 위해서는 엑셀이 기본이죠.그런데 ..

EXCEL - VBA 2025.01.27

셀 값이 바뀔 때 처리(Worksheet_Change)

구글 스프레드시트에서 값이 수정될 때 처리하는 것은 아래 글에 살표봤는데,https://lsw3210.tistory.com/572 이번에는 엑셀 VBA로 하는 방법을 살펴보겠습니다. 1. 문제A2셀에 '남산동'을 입력해서 C열에 남산동이 들어있는 법정동을 나열한 후D2셀에서 '부산광역시 금정구 남산동'을 선택한 경우 A2셀의 값을 '청계동'으로 바꾸면 C열의 값은 바뀌지만 D2셀의 값은 그대로 남아 있습니다. 구글 스프레드시트에서처럼 'A2셀 값이 바뀌면 D2셀의 값을 지우는 것'을 구현해 보겠습니다. 2. 해법(1) VB Editor 실행개발도구 탭에서 Visual Basic을 클릭해서 VB Editor를 엽니다. (2) 이벤트 선택 콤보 상자 열기오른쪽 '코드 창'을 보니 윗 부분에 '(일반)'과 '..

EXCEL - VBA 2024.08.29

주소를 PNU로 변환하기(2) - VBA

3. 특지 구분 연결하기특지 구분 등을 구하는 사용자 정의 함수는 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/564 이번에는 사용자 정의 함수가 아니라 매크로로 특지 구분을 구하겠습니다.그러나 구문은 사용자 정의 함수나 같은데,사용자 정의 함수는 특지구분이란 변수로 값을 반환해야 하는데 반해서매크로는 직접 처리하고 값을 반환할 필요가 없고, 사용자 정의 함수의 경우는 인수(아래 코드에서 '범위')를 직접 대입할 수 있는데 반해서,매크로의 경우는 인수를 대입할 수도 있지만 본 예제의 경우는 반복 구문이기 때문에 인수를 직접 입력할 수 없다는 점입니다.Function 특지구분(범위 As Range) '범위(주소)에서 특지구분을 추출한다. Dim 마지막공백 A..

EXCEL - VBA 2024.08.19

주소를 PNU로 변환하기(1) - VBA

1. 법정동 코드 가져오기 PNU 코드는 법정동 10자리 + 특지 구분 1자리 + 본번 4자리 + 부번 4자리 = 19자리로 되어 있습니다. 법정동 코드는 https://www.code.go.kr/ 사이트에서코드 검색을 누르고, 코드명에 '법정동'이라고 입력하고 검색을 하면텍스트 파일로 받을 수 있으면 이것을 엑셀 파일로 바꾸면 됩니다.자세한 것은 https://lsw3210.tistory.com/517 을 참고 바랍니다. 텍스트 파일을 연 후 Ctrl + A키를 눌러 전체를 선택한 후 복사해서 시트2에 붙여 넣고 시트명을 '법정동코드'로 바꾸면 아래와 같습니다.  2. 법정동에 대한 법정동 코드 검색하기 매크로로 만들기 위해 개발도구 - Visual Basic을 누른 후코드 창에 Sub pnu라고 입력..

EXCEL - VBA 2024.08.16

주소를 법정동, 특지 구분, 본번, 부번으로 분리하기(2)

법정동을 구하는 것은 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/563 5. 특지 구분 구하기특지는 법정동 다음에 '산'이 있는지 여부로 판단하면 되므로법정동 함수를 참고해서 만들면 됩니다. 코드는 아래와 같습니다.Function 특지구분(범위 As Range) '범위(주소)에서 특지구분을 추출한다. Dim 마지막공백 As Integer Dim 지번 As String 마지막공백 = InStrRev(범위, " ") If Mid(범위, 마지막공백 - 1, 1) = "산" Then 마지막공백 = InStrRev(범위, " ", 마지막공백 - 1) End If 지번 = Mid(범위, 마지막공백 + 1)..

EXCEL - VBA 2024.08.14

주소를 법정동, 특지 구분, 본번, 부번으로 분리하기(1)

1. 수식 이용 하기아래 글에서 수식을 이용해 주소에서 법정동을 분리해내고,https://lsw3210.tistory.com/519 주소를 PNU로 만들기(1-3) : 주소를 법정동명과 지번으로 분리하기4. 주소를 법정동과 지번으로 분리하기 가. 주소의 형태  아래와 같이 시도, 시군구, 읍면동, 리로 구성된 주소가 있을 때법정동과 지번을 구분해야 하는데한 칸 공백의 개수가 3개인 경우도 있lsw3210.tistory.com 지번에서 특지구분과 본번, 부번을 분리했는데https://lsw3210.tistory.com/521 주소를 PNU로 만들기(1-5) : 필지구분과 본번,부번 변환하기산인 경우 하이픈이 있는 경우가 없어서,A8셀의 주소를 경기도 가평군 북면 화악리 산 339에서 경기도 가평군 북면 적..

EXCEL - VBA 2024.08.13

왜 범위 지정 오류?

1. 문제 G2셀의 구분에 해당하는 값을 B열에서 찾아서 해당하는 A열에서 C열의 값을 i열부터 K열에 표시하려고 하는 것입니다. 가. Sheet1에서 '같은시트에복사' 매크로 실행 위 파일을 연 후 개발 도구 - 매크로를 누르고, 매크로 이름 목록에서 '같은시트에복사' 매크로를 클릭하고, 오른쪽 위 실행 버튼을 누르면 G2셀에 선택된 값과 동일한 구분에 해당하는 데이터만 i열부터 K열에 잘 복사됩니다. 나. Sheet1에서 '다른시트에복사' 매크로 실행 이번에는 Sheet1 시트가 선택된 상태에서 개발 도구 - 매크로를 누른 다음 '다른시트에복사' 매크로를 실행하고 Sheet2를 클릭해 보면 G2셀에 해당하는 값들이 잘 표시됩니다. 다. Sheet2에서 '다른시트에복사' 매크로 실행 그런데, Sheet..

EXCEL - VBA 2024.08.06

VBA 에서 .Value가 필요한 경우

1. 문제  아래와 같이 지출 내역이 있을 때구분이 몇 가지 있는지 추출하려면 아래와 같이 데이터 탭의 '중복된 항목 제거'를 하는 것이 간결하지만VBA에서 Dictionary를 이용해 중복된 것은 하나만 추출하는 것을 해보겠습니다.  '중복된 항목 제거'를 하려면먼저 구분을 다른 범위에 복사해서 붙여넣고 데이터 탭을 선택한 후 '데이터 도구 그룹'의 '중복된 항목 제거' 명령을 누르고, 중복된 항목 제거 기준이 '구분'으로 되어 있으므로,확인 버튼을 누르면 됩니다. 그러면 "중복 값 3개가 발견되어 제거되었다"고 합니다.   2. 성공 - Range 다음에 .Value를 붙인 경우VBA에서 중복값을 제거할 때는 여러 가지 방법이 있을 수 있지만Dictionary를 이용하는 것이 제일 편합니다. 개발도구..

EXCEL - VBA 2024.08.02

셀 서식의 통화 기호 활용하기(환율 적용하기)

통화 기호를 알아내는 사용자 정의 함수(UDF) 만드는 것은 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/538 1. 문제 위 URL에서 통화 표시 형식에 따라 통화 기로를 C열에 수식을 입력해서 구했는데, 이들 통화 기호에 따라 F열에서 K열까지 있는 환율을 이용해 원화로 표기해 보겠습니다.  2. 해법 (가) 수식 1환율이 오른쪽으로 배치되어 있으므로HLookup함수를 사용해야 합니다. 따라서, D1셀에=HLOOKUP(C1,$F$1:$K$2,2,0)라고 입력해서, C1셀 값을 F1셀에서 K2셀까지의 범위의 첫 번째 행에서 찾아 두 번째 행의 값을 구하면 ₩이므로 1이 구해집니다. 이제 A1셀의 값을 구하면 됩니다. 100원이 구해졌습니다. 다시 D1셀의 채우기 핸들을 더..

EXCEL - VBA 2024.07.10
반응형