본문 바로가기

365함수11

[기초방] VBA 100제 #70 [ 구간별 값 구하기 ] 우노사설님의 강의를 리뷰한 문제이다. https://www.youtube.com/watch?v=5X_NhTJUpGM 본인의 코드 진행이 이해가 안된다면 강의를 보고 진행하는것을 추천한다. 이번 문제는 테이블에서 각 구간에 해당되는 값들의 갯수를 출력하는 문제이다. 그러기 위해서는 일단 양수라는 조건하에 테이블의 최대값을 구한 후, 그것을 CEILING_MATH 함수로 각 조건의 STEP의 배수로 재조정하여야 한다. MaxVal = .Ceiling_Math(.Max(rngAll), Step) 이렇게 구해진 값으로, 각 구간을 SEQUENCE로 분리해야 한다. 아래의 코드는 SEQUENCE함수로 구한 값을 ARRAYTOTEXT로 배열상수화 시키는 구문이다. Vlist = .ArrayToText(.Sequen.. 2023. 10. 2.
[기초방] VBA 100제 #69 [ 테이블 순환하며 결합하기 ] 기초방 68문제의 해결을 각 표를 하나씩 하드 코딩하여 붙혀넣기 하였다면, 이번 구문은 각 테이블을 순환하면서 표 개체를 하나씩 붙혀넣기 하는 방식으로 풀어보았다. For Each ListTbl In ActiveSheet.ListObjects '= 각 표의 데이터 값을 가져옴 ListTbl.DataBodyRange.Copy Cells(Rows.Count, "f").End(3)(2).PasteSpecial xlPasteValues Next ListTbl 각 테이블을 순환하면서 출력 테이블의 데이터값이 있는 행의 다음 행에 각 테이블의 값만 가져오는 코드이다. 이게 이번 문제의 키가 될것이다. 더보기 Option Explicit Sub 기초방69() Dim ListTbl As ListObject Dim i&.. 2023. 10. 2.
[기초방] VBA 100제 #67 [ 테이블 요약하기 ] 앞으로 포스팅할 내용들은 365 함수와 연계하여 작성 하도록 하려고 한다. 중요한 이유는 VBA보다는 엑셀 함수를 사용하여 짧고 빠르게 해결할 수 있는 문제들이기 때문이다. 본인이 아무리 코드를 줄인다고 해도, 막강한 365 함수를 이겨낼 수 없다. 기초방 67번같은 경우, 각 상품의 날짜와 품목을 키로 하여 각각의 판매 합계와 갯수, 평균, 최대 최소값을 구하는 것인데. 일반적으로 이러한 문제를 접근하기 위해서는 앞서 공개한 크루들의 코드처럼 엑셀 함수로 푸는것이 정석이고 정답이라고 말하고 싶다. 코드 자체는 엑셀 함수 기반이라서 큰 어려움은 없을 것이다. 더보기 Option Explicit Sub 기초방67() Dim rngAll As Range: Set rngAll = [a5].CurrentRegi.. 2023. 10. 1.