나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 ist공원 (istpark)

추천:  2
파일:     조회:  2137
제목:   VBE -> Global Worksheet 개체
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

1. 엑셀 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...): 

* 아래줄에 질문을 작성하세요 >>

------------------------------
Dim shtSrc As Worksheet
Set shtSrc = Sheets("Sheet1")
------------------------------

프로시져 내부에서 위와 같이 선언(지역변수로 사용)하면, 무리 없이 동작하나,
프로시져 외부에서 선언(전역 변수로 사용)하면,
"외부 프로시져가 잘못되었습니다"라는 컴파일 오류를 냅니다.
shtSrc라는 Worksheet개체를 전역 변수로 사용하고자 합니다.
어떻게 해야 할지요...??
 
[불량 게시물 신고]  
졸따구외부 변수선언부에서 'Dim'대신에 'Public'을 사용해 보세요.
그럼..
07-25 (21:12)
삭제 ■신고
ist공원Public으로 선언해도 결과는 동일합니다.
Set 구문에서 에러가 납니다.
재고해 주시와요~~~~
07-26 (00:17)
삭제 ■신고
혹시나Public shtSrc As Worksheet 는 모듈 일반 선언부에서 선언하고
Set shtSrc = Sheets("Sheet1")는 프로시저안에서 정의 해보시죠


07-26 (00:55)
삭제 ■신고
ist공원네, 혹시나님...
그것은 가능합니다.
제가 원하는 것은 외부변수로 선언하구...
외부에서 바로 초기화를 시켜서, 상수처럼 그 값을 사용하고 싶은 것입니다.
혹시나님이 알려주신 방법으로는 프로시져마다 Set 구문으로 할당을 해서 사용해야 하는 것 같습니다.
궁극적으로 제가 원하는 것은
Const strTemp as String = "SomeString..."
에서 문자 상수를 선언하듯이...
Const shtTemp as Worksheet = Sheets("Sheet1")
처럼 상수 시트(?)를 선언하는 방법입니다.(물론 이렇게 하면 오류가 나지만...)
도움 좀 더 주세요~~~
07-26 (01:09)
삭제 ■신고
황기성Const shtTemp as Worksheet = Sheets("Sheet1")
처럼 상수 시트(?)를 선언하는 방법입니다.(물론 이렇게 하면 오류가 나지만...)

물론, 알고 계신 것처럼 오류가 나므로 위와 같은 방법은 불가능한 것이랍니다.

혹시나님이 알려주신 방법으로는 프로시져마다 Set 구문으로 할당을 해서 사용해야 하는 것 같습니다.
라고 하셨지만, 전혀 그렇지 않습니다.

전역변수를 선언하고, Workbook_Open 이벤트프로서저 등에서 해당 변수에 개체를 대입하는 코드를 넣어주시면 나머지는 상수의 사용과 동일하게 작업하실 수 있습니다.

그럼...행운이 있으시길....!
07-28 (10:08)
삭제 ■신고
ist공원감사합니다..
맺힌 응어리가 풀린 기분입니다.
왜 그런 방법은 생각을 못했을까용...
역시 초고수 절정으로의 길은 아직 멀고도 험하네요..^^
건강하세요..
07-28 (21:38)
삭제 ■신고
        
  

작성일 : 2003-07-25(20:32)
최종수정일 : 2003-07-25(20:32)