본문 바로가기

파싱3

[VBA] 패턴을 순환하는 정규식을 만들어보자 이번 정규식에 관한 내용은 실제로 쇼핑몰 파싱을 하던 중에 발생한 일이었다. 쇼핑몰 태그를 정규식을 파싱하던 중 하나 이상의 패턴들로 파싱을 하다 보니까 코드가 너무 지저분해서 문자열과 패턴을 함수로 만들어서 불러오면서 사용했더니 코드가 한결 간단해지고 유지보수가 편할거라 생각되어 만들어 보았다. 오토핫키도 그렇고 조금씩 접해보는 언어들에서 사용자 함수의 생성과 활용은 크게 적용되어 앞으로는 코드들을 함수화 시켜서 모듈처럼 사용하려고 한다. 그전에는 가독성도 떨어지고 속도면에서도 문제가 있어 함수 사용을 하지 않았는데, 지금보면 단편적인 사고였던거 같다.. 코딩을 하려면 입체적인 사고가 절대적으로 필요한거 같다.. 이번 코드는 함수로 만들어져서 엑셀에서 함수처럼 불러와서 사용하여야 한다. 물론 나중에 이.. 2022. 8. 31.
[질문] 숫자와 문자가 섞여있는 데이터를 숫자 기준 정렬하기 기본적으로 숫자와 문자가 섞여있는 데이터는 숫자도 문자로 인식하여 정렬을 하게되면 이런식으로 참 재미없게 정렬이 된다. 이를 해결하기 위해서는 앞의 숫자를 분리하여 그 분리된 숫자를 기준으로 정렬을 하면 된다. 파일명을 보면 숫자와 문자사이에 스페이스가 하나 있는데 이걸 기준으로 Split를 하면 된다. Split는 배열 형태로 반환하기 때문에 배열로 받거나 아님 배열의 한 부분을 받으려면 index 번호를 넣어주면 된다. 더보기 Option Explicit Sub Haja_Pdf_Page_Count() Dim rngX As Range: Set rngX = [a2] Dim rngAll As Range Dim rngA As Range If rngX = "" Then Exit Sub '= 파일명의 처음이 없.. 2022. 8. 27.
[VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레이리스트나 컬렉션으로 구하는게 대부분이다. 본인의 VBA 뮤즈인 준빠님께서 질문을 올렸다. 고유값을 구하고 그 중복횟수를 구하는 것은 딕셔너리로 구해왔기 때문에 너무나 당연하게 나올 코드 말고 배열로만 그 고유값과 횟수를 구하라는 숙제이다. 배열로 구할 수 있는 방법은 소스 영역을 반복할 For문과 결과값에 추가하면서 그값이 기존 결과 배열에 있는지 확인하는 For문을 구하는 다중 For문을 이용해서 비교해가며 값을 추가해야 한다. 하지만 이렇게 되었을 경우 소스 영역이 많아지면 결과값에서 비교하는 자체로 시간이 소요가 된다. 순차적으로 For문을 타는 방식이 아닌 Find나 Search처럼 해당값.. 2022. 4. 6.