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

작성자:  

 한 (lbjpgh)

추천:  2
파일:     조회:  1749
제목:   워크북 열기(매크로에서)
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

* 아래줄에 질문을 작성하세요 >>날이 만이 선선해 진거 같습니다. 어느듯 벌초할 때..^^
어느 버튼을 클릭하면 워크북 열기가 포함되어있는 프로시져를 수행합니다.
이 버튼을 두번째 클릭할때는 엑셀 열기에러메세지가 나잖아요 그래서 질문인데요
조건상으로 파일이 열려있으면 활성화하고 파일이 열려있지 않으면 파일열기를 시도하는
방법 좀 알려주세요.(마음은 ...... 머리가 도저히.....///^^  좀 도와주세요)
 
[불량 게시물 신고]  
R2안녕하세요... "한"님...


다음의 사용자 정의 함수를 이용해 보세요...

Function IsOpen() As Boolean
Dim strTmp As String
    
    On Error GoTo EH

    strTmp = Workbooks("a.xls").Worksheets(1).Range("a1").Value
    IsOpen = True
    Exit Function
EH:
    IsOpen = False
    
End Function


열려 있는 지 확인해 볼 파일이 a.xls라고 할 경우...
파일이 열려 있다면 True를 반환하고, 열려 있지 않다면 False를 반환합니다.

의문나는 사항이 있음 다시 말씀해 주시고요



그럼... 20000 ^^*
08-30 (11:33)
삭제 ■신고
R2님 적절한 답에 대해 엄청난 감사를 드립니다.   ...../// 감사08-30 (11:46)
삭제 ■신고
황기성R2님이 멋진 답을 주셨지만, 위 프로시저에는 맹점이 있습니다.

strTmp = Workbooks("a.xls").Worksheets(1).Range("a1").Value
에서 Workbooks("a.xls").Worksheets(1).Range("a1")에 오류값이 들어 있거나 한다면, 위의 코드는 오류가 발생해, 실제로 해당 문서가 열려 있다고 하더라도 올바른 결과를 되돌릴 수 없기 때문입니다.

아래와 같이 하십시오.

Function IsOpen(wbName As String, shtName As String) As Boolean
On Error Resume Next
    IsOpen = (Len(Workbooks(wbName).Worksheets(shtName).Name) >= 1)
On Error GoTo 0
End Function

그럼...행운이 있으시길...!
08-30 (12:50)
삭제 ■신고
R2그렇군요... ^____________^;


또 한 수 자~~알 배웠습니다.


언제나 행복하시기를... ^^*
08-30 (20:34)
삭제 ■신고
        
  

작성일 : 2003-08-30(11:16)
최종수정일 : 2003-08-30(11:16)