VBA) 변수명을 텍스트 조합으로 호출할 수 있는 방법이 있을까요?
VBA
작성자
whrjsg****
작성일
2024-04-15 14:04
조회
1264
예를들어서
바보 라는 명칭의 100개의 칸을 가진 배열로 만들어진 변수가 있다면 이 변수를
바보(100) = "안녕하세요"
인사말 = "바보" & (100)
위와 같이 텍스트 형태로 조합해서 변수를 호출하는 방법이 있을까요 ?
엑셀에서 INDIRECT 함수와 비슷한 느낌..으로 생각하고 있는데..찾아봐도 방법이 없어보여서요.. @_ @
전체 18,476
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
![]() ![]() |
![]() ![]() |
2022.02.03 | 573 | 600645 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 34963
|
![]() ![]() |
2021.10.28 | 310 | 34963 |
78431 | VBA |
New IF 조건문 기초 질문 드립니다.
![]() ![]() |
![]() |
00:46 | - | 32 |
78428 | 기능/도구 |
New 보이는 범위의 셀로만 붙여넣기하는 법
![]() ![]() |
![]() |
2025.04.29 | - | 76 |
78424 | 함수/공식 |
New 생년월일 6자리로 나이 계산 어떻게 하나요?
(7)
![]() |
![]() |
2025.04.29 | - | 83 |
78421 | 함수/공식 |
New INDEX + MATCH 함수 문의
(2)
![]() |
![]() |
2025.04.29 | - | 81 |
78420 | 함수/공식 |
New 여러시트 중에 같은내용을 찾기
![]() ![]() ![]() |
![]() |
2025.04.29 | - | 63 |
78419 | 문서서식 |
New 크기가 다른 셀에서의 필터 걸기 부탁드립니다 !
![]() ![]() |
![]() |
2025.04.29 | - | 53 |
78418 | 함수/공식 |
New [퀴즈] 텍스트 압축/변형하기
![]() ![]() ![]() |
![]() |
2025.04.29 | - | 104 |
78416 | VBA |
New 시트보호된 상태에서 매크로 작동시 Range 클래스 중 Insert 메서드에 오류가 있습니다.
![]() ![]() |
![]() |
2025.04.29 | - | 49 |
78414 | 파워쿼리/피벗 |
New 다른 엑셀 파일에서 필요한 값만 불러오는 방법
![]() ![]() |
![]() |
2025.04.29 | - | 58 |
78413 | 함수/공식 |
New 경과주 구하는 수식 문의
(1)
![]() |
![]() |
2025.04.29 | - | 56 |
78411 | 문서서식 |
New 숫자 문자인식 숫자변환하는 법
![]() ![]() |
![]() |
2025.04.29 | - | 72 |
78410 | VBA |
New [매크로관련] 특정셀 자동증가하며, 연속출력할수 있을까요?
![]() ![]() |
![]() |
2025.04.29 | - | 84 |
78408 | 문서서식 |
New 숫자 서식 변경하기
![]() ![]() |
![]() |
2025.04.29 | - | 58 |
78407 | 기능/도구 |
New 원드라이브 MICROSOFT 365 사용중 공동작업시 필터
![]() ![]() |
![]() |
2025.04.29 | - | 52 |
78402 | 함수/공식 |
New 괄호안의 시간:분 데이터를 분으로 합산하는 방법 질문드립니다.
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 66 |
78400 | 함수/공식 |
New 2차배열에서 countif
![]() ![]() |
![]() |
2025.04.28 | - | 85 |
78399 | 함수/공식 |
New 한달의 마지막주 스케쥴 작성시 전주까지의 휴무 누적 합계 구하는 방법이 궁금합니다.
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 52 |
78398 | VBA |
New VBA 매크로 여러 엑셀 파일에서 사용
(1)
![]() |
![]() |
2025.04.28 | - | 81 |
78396 | 함수/공식 |
New 직원별로 근태 합계를 확인하고 싶어요
![]() ![]() |
![]() |
2025.04.28 | - | 113 |
78395 | 함수/공식 |
New 특정 단어를 포함한 행 골라내는 방법에 대해 문의드립니다.
(3)
답변완료
![]() |
![]() |
2025.04.28 | - | 74 |
78392 | 함수/공식 |
New 도와주세요... ( 특정값에 해당하는 반 번호 찾아 목록만들기)
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 79 |
78389 | 기능/도구 |
New 오빠두LIVE 196회 - 엑셀 프로젝트 관리 _ 일,주 바꾸는법
![]() ![]() |
![]() |
2025.04.28 | - | 68 |
78387 | 함수/공식 |
New 엑셀 관련 질문입니다. SUM과 IFERROR 입니다 ㅠ
(6)
![]() |
![]() |
2025.04.27 | - | 115 |
78382 |
New Excel 추세선 이상
![]() ![]() |
![]() |
2025.04.27 | - | 88 | |
78381 | 함수/공식 |
New 같은 이름 N 번째 데이터
![]() ![]() ![]() |
![]() |
2025.04.27 | 1 | 123 |
78380 | 함수/공식 |
New On Error Resume Next 문구를 삽입하는 위치는?
(2)
답변완료
![]() |
![]() |
2025.04.27 | - | 91 |
78376 | 함수/공식 |
New 지역별 증감금액 확인
![]() ![]() |
![]() |
2025.04.26 | - | 83 |
78374 | 함수/공식 |
New index를 활용한 조건에 맞는 금액을 찾는 방법
![]() ![]() ![]() |
![]() |
2025.04.26 | - | 102 |
78372 | 기능/도구 |
New 표서식 차이 문의
![]() ![]() |
![]() |
2025.04.25 | - | 70 |
78370 | 피벗테이블 |
New (피벗테이블) 2024년 2025년 판매 TOP10 비교데이터
![]() ![]() |
![]() |
2025.04.25 | - | 105 |
@whrjsg**** 님 배열을 100개로 선언한 다음에 배열에서 불러오면 될 듯 합니다.
100이라는 Index 번호를 알고, 불러올 변수가 "바보"라는 것을 아니까요...
만약 변수명도 "바보"외에 여러 개 있는 것이라면 변수명에 따라 IF나 Select를 사용해 보세요.
@원조백수 님 앗 답변 감사합니다.. ! 희망하는건 아니었는데..^,.ㅠ.. 변수명을 조합등으로 ,, 유동적으로 호출이 가능할지..였습니다 !
불러야할 대상들이 많다보니까 , 명칭을 배열에 저장하고 for문으로 반복해서 명칭을 불러오면서 배열에 저장된 값들을 계속 불러들이고 싶었는데 ( 안그러면 for문 안에 if나 case문을 여러개 만들어야해서.. ) 하핳..ㅠ
@whrjsg**** 님 변수명을 조합한다는 것을 구체적으로 예를 들어 보세요.
이름의 조합으로 할당된 값을 찾는다면,
Dictionary를 이용해서 작업할 수도 있습니다.
@원조백수 님 번거롭게 해드려서 죄송합니다 ! (_ _ )

이런식의 표가 있다면
상 중 하 에 따라서 각각 상그룹 , 중그룹 , 하그룹 배열에 넣고 싶은데
이걸 지금 하고잇는 방식은.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
등급 = ActiveSheet.Range("A1:A13")
값 = ActiveSheet.Range("B1:B13")
배열길이 = 등급.Cells.Count
ReDim 상그룹(배열길이)
ReDim 중그룹(배열길이)
ReDim 하그룹(배열길이)
상그룹위치 = 0
중그룹위치 = 0
하그룹위치 = 0
For i = 1 To 배열길이
If 등급(i) = "상" Then
상그룹위치 = 상그룹위치 + 1
상(상그룹위치) = 값(i)
End If
If 등급(i) = "중" Then
중그룹위치 = 중그룹위치 + 1
증(중그룹위치) = 값(i)
End If
If 등급(i) = "하" Then
하그룹위치 = 하그룹위치 + 1
하(하그룹위치) = 값(i)
End If
Next i
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
위 구문처럼 , 각 케이스 별로 등급 값을 체크해서 배열에 직접 넣어주고 있는데 이걸,
등급 = ActiveSheet.Range("A1:A13")
값 = ActiveSheet.Range("B1:B13")
배열길이 = 등급.Cells.Count
ReDim 상그룹(배열길이)
ReDim 중그룹(배열길이)
ReDim 하그룹(배열길이)
상그룹위치 = 0
중그룹위치 = 0
하그룹위치 = 0
For i = 1 To 배열길이
등급(i)(등급(i) & 그룹위치) = 값(i)
Next i
이런식으로 ...;ㅅ; 가져온 값들을 조합해서 , 변수에 접근할 수 있는 방법이 있는지...가 ! 궁금했습니다.
다시 한번 번거롭게해드려서 죄송합니다 (_ _)
@whrjsg**** 님 변수를 동적으로 지정하기 어려우므로, Dictionary를 이용해서 작업해 보세요...
변수에 값을 지정하는 것이 목적이 아니라, 변수명에 따른 값을 찾아오는 것이 주요 목적일 것으로 생각합니다.
샘플을 첨부합니다.
첨부파일 : Dictionary_Sample.xlsm
@whrjsg**** 님 100이라는 숫자 대신 변수는 사용할 수 있습니다
@찬바람 님 숫자 대신 변수라는게 어떤 의미인지가 잘..^,.ㅠ.. 죄송합니다..
희망 하는 점에 대해서 구체적으로 정리해서 올려보겠습니다 !