워크시트명을 변수로 전달해서 선택하는 방법

VBA
작성자
ksm****
작성일
2021-07-28 18:15
조회
222
엑셀버전 : 엑셀2016

운영체제 : 윈도우10

안녕하세요?

동일한 작업을 여러 워크시트에 한꺼번에 적용하려고 워크시트명을 변수로 설정해서 반복문을 돌리니 에러가 났습니다.

나름대로 여러가지 시도를 해보고 검색을 해보았지만, 답을 찾지 못해서 문의 드립니다.

미리 감사드립니다.

 

<질의사항>

워크시트명을 미리 배열에 넣고 이 값을 이용해서 워크시트를 선택하는 VBA코드를 짜면,

'아래첨자사용이 잘못되었습니다.'라는 에러가 나고 이 때 조사식 창에는 Sheets(배열) 값이 integer로 나타납니다.

배열의 값은 분명히 String입니다. 당연하겠지만 배열의 결과값에 해당하는 문자열을 하드코딩하면

에러는 안납니다.

 

<샘플 코드>

Sub 품목별자료옮기기()

Dim ws As Worksheet
Dim 품목 As Variant

Dim rNo as integer

품목 = Array("K - Disty", "K - Other", "ODA", "ZOm", "기타신품", "중고품", "Rental", "솔루션상품", "ATE/SI", "서비스")

Set ws = ThisWorkbook.Sheets("전체실적")

'기존 데이터 지우기

For i = 0 To 9
If 품목(i)<> "ATE/SI" Then

rNo = Sheets(품목(i)).Range("a3").End(xlDown).Row

Sheets(품목(i)).Range("a4", Cells(rNo - 1, 12)).Delete

Else

rNo = Sheets("ATE").Range("a3").End(xlDown).Row

Sheets("ATE").Range("a4", Cells(rNo - 1, 12)).Delete

End If

Next i

전체 3

  • 2021-07-28 23:13
    채택된 답변

    문제가 되는 구문은 For i = 0 To 9입니다.

    i는 0~9까지의 숫자로 받아라고 명령어를 짜놓고 문자를 넣었다고 문자가 되진 않습니다.

    WorkSheet를 하나씩 받는 방법은

    Dim Ws as Worksheet

    For each Ws in Thisworkbook.WorkSheets

    Next

    구문을 사용 해보세요.
    For each Ws in Thisworkbook.WorkSheets
    Ws.Name <> "ATE/SI" Then
    명령문~~~~
    Next
    이런식으로 하면 됩니다.


  • 2021-07-29 10:41

    안녕하세요?

    친절한 답변 감사합니다.

    추가적인 질문을 드려도 될까요?

    문제가 되는 부분은 코드에서 sheets(품목(i)) 인데, 품목(i)는 배열값이 그 속성이 문자열인데도, 이러한 문제가 발생하는 것이 궁금합니다.

    말씀해주신대로 컬렉션으로 처리하면 문제를 해결할 수 있겠네요. 답변 거듭 감사드립니다.

     

     


  • 2021-07-29 11:51

    코멘트 해주신대로 작업했더니 문제가 깔끔하게 해결되었습니다.

    감사합니다.


전체 4,022
번호 카테고리 제목 작성자 작성일 추천 조회
4006 피벗테이블
New 피벗테이블에서 '값 행 표시' 질문드립니다. 첨부파일
월마리아 | 01:01 | 추천 0 | 조회 4
월마리아 01:01 0 4
4005 VBA
New 네이버 쇼핑 댓글 가져오기
아가늑대 | 2021.09.22 | 추천 0 | 조회 19
아가늑대 2021.09.22 0 19
4004 기능/도구
New 엑셀 비활성화된 링크들 활성방법
N솔 | 2021.09.22 | 추천 0 | 조회 22
N솔 2021.09.22 0 22
4003 함수/공식
New (수정 재업로드) 질문 다시 올립니다! (9) 답변완료
치운 | 2021.09.22 | 추천 0 | 조회 22
치운 2021.09.22 0 22
4002 함수/공식
New 다음과 같이 하려면 어떤 함수를 써야할까요? 아니면 노가다해야하나요? (7)
치운 | 2021.09.22 | 추천 0 | 조회 29
치운 2021.09.22 0 29
4001 VBA
New Change이벤트관련 문의사항 첨부파일 (1)
H.B | 2021.09.22 | 추천 0 | 조회 25
H.B 2021.09.22 0 25
4000 함수/공식
New TEXTJOIN 표시 형식 (1)
제비제비 | 2021.09.22 | 추천 0 | 조회 27
제비제비 2021.09.22 0 27
3999 문서서식
New 특정이름 행에서 서식 설정(식 오류 관련 질문) (1)
sjdlj | 2021.09.22 | 추천 0 | 조회 20
sjdlj 2021.09.22 0 20
3998 VBA
New Ctrl+F 시트에 넣고 싶습니다. (2)
ㅋㅋㅋㅋ | 2021.09.21 | 추천 0 | 조회 31
ㅋㅋㅋㅋ 2021.09.21 0 31
3997 VBA
New VBA 다중페이지(멀티페이지) 페이지를 자동선택할수 있습니까? (2) 답변완료
나두엑셀왕 | 2021.09.21 | 추천 0 | 조회 35
나두엑셀왕 2021.09.21 0 35
3996 함수/공식
New 이런건 어떻게해야하나요 ㅠㅠㅠㅠ (1)
김학찬 | 2021.09.21 | 추천 0 | 조회 40
김학찬 2021.09.21 0 40
3995 기능/도구
New 맥용 엑셀에서 필터 선택항목 체크박스 무슨 키로 선택하시나요?
치킨카뤠 | 2021.09.21 | 추천 0 | 조회 18
치킨카뤠 2021.09.21 0 18
3994 차트/그래프
New 피벗챠트에 대한 문의 (4) 답변완료
Trimman | 2021.09.21 | 추천 0 | 조회 33
Trimman 2021.09.21 0 33
3993 함수/공식
New 값이 있는 경우 더하세요 는 어떻게 사용해야될까요 ? (10) 답변완료
향기 | 2021.09.21 | 추천 0 | 조회 50
향기 2021.09.21 0 50
3992 VBA
New 수식에 사용자함수가 들어있을때 사용자함수부분만 값으로 치환가능한가요~? (1)
Mindcare | 2021.09.20 | 추천 0 | 조회 43
Mindcare 2021.09.20 0 43
3991 함수/공식
New 다시 질문 드려요.. 엑셀 수식으로 가능한지요? (2)
soo | 2021.09.20 | 추천 0 | 조회 45
soo 2021.09.20 0 45
3990 함수/공식
New 실시간데이터에서 원하는 숫자와 일치한 횟수찾는 엑셀함수는? (2) 답변완료
kumkang**** | 2021.09.20 | 추천 0 | 조회 43
kumkang**** 2021.09.20 0 43
3989 함수/공식
특정기간동안의 입출금내역 다른시트에서 모두 출력어떻게하나요? 첨부파일 (2) 답변완료
ericju**** | 2021.09.20 | 추천 0 | 조회 37
ericju**** 2021.09.20 0 37
3988 함수/공식
조건부서식 관련 문제 (2)
콩콩이0782 | 2021.09.19 | 추천 0 | 조회 39
콩콩이0782 2021.09.19 0 39
3987 VBA
엑셀 재고툴만들기 중 목록박스의 값 복사하기 (1)
나두엑셀왕 | 2021.09.19 | 추천 0 | 조회 22
나두엑셀왕 2021.09.19 0 22
3986 함수/공식
엑셀 함수 계산 절대값 조건 등 질문입니다. 도와주세요 (1)
우나기77 | 2021.09.19 | 추천 0 | 조회 26
우나기77 2021.09.19 0 26
3985 함수/공식
(질문이요) 한가지 조건으로 여러값 불러오기 첨부파일 (3) 답변완료
Rampage | 2021.09.19 | 추천 0 | 조회 37
Rampage 2021.09.19 0 37
3984 함수/공식
어떤 식으로 구성을 해야 할 지 모르겠어요 도와주세요 첨부파일 (1)
욕심없는성공v | 2021.09.19 | 추천 0 | 조회 27
욕심없는성공v 2021.09.19 0 27
3983 함수/공식
실시간 데이터에서 원하는 숫자와 같은면 일치한 횟수를 카운팅하는 함수 (5) 답변완료
kumkang**** | 2021.09.19 | 추천 0 | 조회 56
kumkang**** 2021.09.19 0 56
3982 피벗테이블
(도움바랍니다)한명의 대표가 다수의 사업장을 운영하는 경우 (2)
일랑일랑 | 2021.09.19 | 추천 0 | 조회 45
일랑일랑 2021.09.19 0 45
3981 함수/공식
함수 만들 수 있을까요? (2)
soo | 2021.09.19 | 추천 1 | 조회 44
soo 2021.09.19 1 44
3980 VBA
엑셀 VBA에서 RemoveDuplicates 사용시 '5' 런타임 오류가 발생하여 해결 방법 문의드립니다. (2)
namonamo | 2021.09.19 | 추천 0 | 조회 23
namonamo 2021.09.19 0 23
3979 함수/공식
(도와주세요) INDEX, MATCH 를 통해 만들었는데 많이 무거워요ㅠ 첨부파일 (1)
18 강영순 | 2021.09.19 | 추천 0 | 조회 49
18 강영순 2021.09.19 0 49
3978 VBA
재고관리 툴 만들기 8시간 풀영상 중 목록상자 가시성과 다중페이지에 대해 질문합니다.
나두엑셀왕 | 2021.09.18 | 추천 0 | 조회 27
나두엑셀왕 2021.09.18 0 27
3977 기능/도구
목록 단추 차수 조회를 피벗테이블과 연동해서 총괄표 조회 할때 에러 발생 해결 부탁드려요~~ 첨부파일 (1)
알면서 | 2021.09.18 | 추천 0 | 조회 23
알면서 2021.09.18 0 23