[ 라이브 공지] 오늘 12월 4일(토) 라이브는 휴강입니다. 모두 즐겁고 평안한 주말 보내세요!

값의 유무에 따라 sheet를 다르게 다중으로 선택

VBA
작성자
홍성
작성일
2021-11-17 15:07
조회
56
엑셀버전 : 엑셀2016

운영체제 : 윈도우10

안녕하세요 현재 vba 접한지 얼마 되지 않은 한 회사원입니다.

 

현재 상황은

첫번째 sheet(이하 controller sheet)를 controller로 이용해 list화 되어있는 틀에 data 입력 후 매크로를 돌리면

정형화 되어있는 다른 시트들(이하 service sheet)에 값을 자동으로 입력하여 pdf로 출력하는 매크로를 만들어 놓은 상황입니다.

 

이번에 추가된 변경사항은

controller sheet에 service sheet들에 대한 체크박스 혹은 텍스트박스를 만들어

값이 있는 sheet만 선택하여 pdf로 추출하려고 합니다.

ex.

sheet1 sheet2 sheet3 sheet4 sheet5 sheet6
O X X X O O

 

이런 경우 원하는 sheet만 다중 선택할 수 있게만 되면 될 것 같은데

이 다중 선택이 쉽지 않습니다.

 

제가 못하는 건지 아니면 default setting이 그런지는 모르겠지만,

제가 시도한 방법은

  1. for문을 돌려 값을 체크한 후 값이 있는 경우 변수 +1 해주어 count를 해준 뒤

배열 선언 시 배열의 크기를 집어넣을 때 count 변수를 넣어줬더니 상수가 아니라고 인식을 하여 실패하였습니다.

ex)

dim count as Integer

for i = 1 To 6

if Cells(1, (i+1)) <> "" then

count = count + 1

end if

next

dim array(count)

2. for문을 돌리며 값이 있으면 다이렉트로 배열을 선언하며 집어 넣어주고,

다른 셀에도 또 값이 있는 경우 redim preserve를 하여 재선언 후 값을 또 넣어주려고 시도했으니 에러로 실패가 뜹니다.

 

디버깅을 해도 에러코드가 친절하진 않아서 계속 실패하네요... ㅠㅠ

어떻게 방법이 있을까요??

전체 2

  • 2021-11-17 15:32

    아 해결했네요

    Sheets(list가 있는 시트).select

    for i = 1 to 항목갯수

    if cells(4, (i + 7)) <> "" then

    if i = 1 then

    workbooks(1).sheets(i + 1).select

    else

    workbooks(1).sheets(i + 1).select(false)

    end if

    end if

    next

     

    이렇게 해결했습니다.

    select함수를 사용할 때 이전 선택을 유지하면서 추가선택을 하고싶을 시 select(false) 이렇게 뒤에 false 조건을 주면 되더군요.

    그리고 workbooks와 그 뒤 괄호에 숫자가 들어가던데 이게 인터페이스인지 무엇인지는 모르겠지만,, 만약 아시는분은 대댓글로 알려주시면 감사하겠습니다.


  • 2021-11-17 20:16
    채택된 답변

    열려 있는 워크북 개체에 이름을 이용해 접근하기 Workbooks("Example.xlsx")

    열려 있는 워크북 개체에 인덱스를 이용해 접근하기 Workbooks(<index>)

    열려 있는 가장 처음 워크북 개체에 인덱스 이용해   접근하기 Workbooks(1)

    열려 있는 가장 마지막 워크북 개체에 인덱스 이용해   접근하기 Workbooks(Workbooks.Count)

    현재 활성화 되어 있는(보고 있는) 워크북 개체에   접근하기 ActiveWorkbook

    실행 되고 있는 VBA 코드를 소유하고 있는 워크북   개체에 접근하기 ThisWorkbook

    워크북 변수 선언하기 Dim wk As Workbook

    워크북 변수 할당하기 Set wk = Workbooks("Example.xlsx")
    Set wk = ThisWorkbook
    Set wk = Workbooks(1)

    워크북 활 성화 시키기 Workbooks(1).Activate
    wk.Activate

    워크북 저장하기 wk.Save

    워크북 복사본을 다른 이름으로 저장하기 wk.SaveCopyAs   "C:\Copy.xlsm"

    워크북 다른 이름으로 저장하기 wk.SaveAs   "Backup.xlsx"

    워크북이 닫혀 있다면 복사하기 FileCopy   "C:\File1.xlsx", "C:\Copy.xlsx"

    저장하지 않고 워크 북 닫기 wk.Close SaveChanges:=False

    저장하고 워크북 닫기 wk.Close SaveChanges:=True

    새로운 워크북 생성하기 Set wk = Workbooks.Add

    워크북 열기 Set wk = Workbooks.Open("C:\Somewhere\SomeFile.xlsx")

    읽기 전용으로 워크북 열기 Set wk = Workbooks.Open("C:\Somewhere\SomeFile.xlsx",   ReadOnly:=True)

    워크북이 존재하는지 체크하기(파일 존재 여부 체크하기)

    If Dir("C:\Somewhere\SomeFile.xlsx") = "" Then
    MsgBox "File does not exist"
    End if

    워크북이 열려있는지 체크하기 아래 '워크북이 열려 있는지 체크하기' 섹션 참고 모든 워크북 순회하기

    For Each wk In Application.Workbooks
    Debug.Print wk.FulllName
    Next wk

    출처: https://kukuta.tistory.com/276 [HardCore in Programming]


전체 4,691
번호 카테고리 제목 작성자 작성일 추천 조회
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (11)
오빠두엑셀 | 2021.10.28 | 추천 16 | 조회 776
트로피 오빠두엑셀 2021.10.28 16 776
24293 기능/도구
New 특정행으로 이동하는 문의를 드립니다. 첨부파일 (2)
열공합시다 | 14:16 | 추천 0 | 조회 12
열공합시다 14:16 0 12
24291 VBA
New for 문과 for each문을 보다가 궁금한게있습니다. (1)
이치영 | 13:43 | 추천 0 | 조회 15
이치영 13:43 0 15
24289 함수/공식
New 함수좀 알려주세요. 첨부파일 (3)
naver_5f055a605ee7d | 10:12 | 추천 0 | 조회 22
naver_5f055a605ee7d 10:12 0 22
24285 VBA
New 파일선택하면 파일명을 클립보드에 넣을수 있을까요? (1)
ㅈㄱㄹ | 01:03 | 추천 0 | 조회 22
ㅈㄱㄹ 01:03 0 22
24279 함수/공식
New xfilter 사용조건 중 모두를 검색하는 수식 첨부파일 (2)
다우미노 | 2021.12.03 | 추천 0 | 조회 26
다우미노 2021.12.03 0 26
24277 VBA
New 엑셀 화일명 변경 관련 첨부파일 (2)
워싱턴 | 2021.12.03 | 추천 0 | 조회 30
워싱턴 2021.12.03 0 30
24276 함수/공식
New 해당값을 끌고오는 양식? 첨부파일 (1) 답변완료
뚜루루 | 2021.12.03 | 추천 1 | 조회 35
뚜루루 2021.12.03 1 35
24275 VBA
New 병렬로 나열된 자료 일렬로 정렬하는 방법 문의 드립니다. 첨부파일 (2) 답변완료
007 | 2021.12.03 | 추천 0 | 조회 46
007 2021.12.03 0 46
24271 VBA
New Sheet 이동시 속성이름을 유지하고 싶어요 첨부파일 (1)
Lucas's | 2021.12.03 | 추천 0 | 조회 30
Lucas's 2021.12.03 0 30
24270 기능/도구
New 여러가지 수식으로 된 엑셀시트에서 목표값에 맞추기 위한 해 찾기 문의드립니다. 첨부파일 (1)
함수시르미 | 2021.12.03 | 추천 1 | 조회 31
함수시르미 2021.12.03 1 31
24262 VBA
New 불규칙 데이터의 자동채우기 해결방법 (1)
파퍼 | 2021.12.03 | 추천 0 | 조회 43
파퍼 2021.12.03 0 43
24259 함수/공식
New 계획시트에서 일일실적시트로 일별 데이터 취합방법 문의드립니다. 첨부파일 (3)
skyzza**** | 2021.12.03 | 추천 0 | 조회 41
skyzza**** 2021.12.03 0 41
24253 함수/공식
New 파일과 관련된 숫자를 다른 파일에 있는 숫자로 변경할 수 있는 방법 첨부파일 (2)
안녕 | 2021.12.02 | 추천 0 | 조회 30
안녕 2021.12.02 0 30
24252 함수/공식
New 표 범위 내에서 맨 좌측값 가져오기 질문드립니다. (3) 답변완료
김성환 | 2021.12.02 | 추천 0 | 조회 33
김성환 2021.12.02 0 33
24251 기능/도구
New 엑셀 주식 가격 예측 양식 사용 질문입니다. 첨부파일 (1)
thause | 2021.12.02 | 추천 0 | 조회 29
thause 2021.12.02 0 29
24249 VBA
New 모든 하위 폴더 내의 최신 파일 하나만을 특정 폴더로 복사하려 합니다 (1)
너의나라 | 2021.12.02 | 추천 0 | 조회 32
너의나라 2021.12.02 0 32
24248 차트/그래프
New 그래프에서 가로 축 Data 설정하는 법 첨부파일
Etter | 2021.12.02 | 추천 0 | 조회 35
Etter 2021.12.02 0 35
24245 VBA
New 아웃룩 이메일 내용에 VBA 변수 넣기 (1) 답변완료
argus | 2021.12.02 | 추천 0 | 조회 37
argus 2021.12.02 0 37
24239 VBA
New [초보] 웹 크롤링 관련 질문입니다. 첨부파일 (2) 답변완료
스캐쳐 | 2021.12.02 | 추천 0 | 조회 34
스캐쳐 2021.12.02 0 34
24238 VBA
New 어떤 한 배열에서 다른 배열에 있는 값만 제외하고 새로운 배열3을 만들 수 있을까요? (2)
Paul | 2021.12.02 | 추천 0 | 조회 32
Paul 2021.12.02 0 32
24233 함수/공식
New 0이상의 값(유효값)이 있는 칼럼과 그 값을 불러오고 싶습니다. 첨부파일 (2) 답변완료
크놉스 | 2021.12.02 | 추천 0 | 조회 32
크놉스 2021.12.02 0 32
24232 차트/그래프
New 엑셀 차트에서 특정 값이 너무 높을때 차트화 하는 법 (2) 답변완료
담담 | 2021.12.02 | 추천 0 | 조회 39
담담 2021.12.02 0 39
24230 VBA
New vba 코딩을 부탁드립니다. 첨부파일 (6)
Trimman | 2021.12.02 | 추천 -2 | 조회 56
Trimman 2021.12.02 -2 56
24228 함수/공식
New 등급 기준표를 참조해서 연산을 하려고 할때 (1) 답변완료
지천 | 2021.12.02 | 추천 0 | 조회 29
지천 2021.12.02 0 29
24221 파워쿼리/피벗
New 엑셀 종속 테이블 문의 첨부파일 (2)
유령회원 | 2021.12.02 | 추천 0 | 조회 25
유령회원 2021.12.02 0 25
24216 VBA
New 로그인엑셀 사용시 수식입력줄 사라짐, 모든 엑셀창 자동종료 첨부파일 (1)
엑셀이 | 2021.12.02 | 추천 0 | 조회 26
엑셀이 2021.12.02 0 26
24215 VBA
New set_routine 반복 매크로 (1)
하늘의 꿈 | 2021.12.01 | 추천 0 | 조회 33
하늘의 꿈 2021.12.01 0 33
VBA
New 재질문 입니다.
하늘의 꿈 | 2021.12.02 | 추천 0 | 조회 17
하늘의 꿈 2021.12.02 0 17
24213 파워쿼리/피벗
New [파워쿼리] 계약자코드 중 특수계약 날짜가 일반계약 최소 최대 사이에 포함여부 열추가 첨부파일 (3)
seorin | 2021.12.01 | 추천 0 | 조회 27
seorin 2021.12.01 0 27
24211 VBA
New 시트를 메일머지하여 Hancom PDF 파일로 출력하는 매크로 VBA 코드 도움을 받고 싶어요. 첨부파일 (4) 답변완료
김학동 | 2021.12.01 | 추천 0 | 조회 39
김학동 2021.12.01 0 39
24210 함수/공식
New 혹시 이런 것도 구할 수 있을까요? (3)
마른막대기 | 2021.12.01 | 추천 0 | 조회 50
마른막대기 2021.12.01 0 50