vba 로 대상 파일을 copy 한다음에 제가 원하는 path 에 붙여 넣을때 대상파일이 쓰기모드일때 충돌 발생 관련 문제

VBA
작성자
밍장군
작성일
2020-11-05 11:59
조회
39
'---------------------------------------------------------------------------------------- 파일 중복 오픈 방지를 위한 복사 붙여넣기

TestFdr = "" & linename & "" & today_year & "-" & today_month & "\" & today_day & "\" & lastModifiedFdr & "\"'

FileCopy TestFile, "" & PasteFilePath & "\" & today_total & ".xls"
TestFile = "" & PasteFilePath & "\" & today_total & ".xls"

안녕하세요

위 코드와 같이 네트워크상 파일 상태가 초단위로 열어서 쓰고 닫고를 반복하는 파일에 접근해서

해당 파일을 copy 해서 로칼에 저장해서 작업하려고 하는데

문제는

초반엔 단순히 파일 copy 는 대상파일에 영향을 미치지 않는다고 생각해서 이런방식으로 접근했는데

알고 보니 copy 하는 순간 잠기더라구요 그래서 네트워크 상 원본 파일 쓰기가 간혹 불가한 경우가 생깁니다

여기저기 알아본 결과

https://kdsoft-zeros.tistory.com/m/67

위 사이트에 VB.net 으로 파일 사용여부를 확인하는 코드가 있던데 클래스 어쩌구 해서 잘 이해가 가지 않습니다

VBA 모듈로 혹 대용가능한 코드 있는지요...
밍장군
회원등급 : 가지2단계
포인트 : 535 EP
총질문 : 28 개 (마감율 : 25%)
채택답변 : 0 개
전체 3

  • 2020-11-06 08:54

    안녕하세요.

    아래 명령문을 사용해보시길 바랍니다.^^

    Function IsFileOpen(filePath As String) As Variant
    
    '파일이 실행중인지 확인합니다.
    '사용예제: IsFileOpen("C\오빠두엑셀\테스트xlsx")
    '파일이 실행중일 시 TRUE를 반환합니다.
    'https://www.oppadu.com
    
    Dim i As Long: Dim err As Long
    
    On Error Resume Next
    i = FreeFile()
    
    Open filePath For Input Lock Read As #i: Close i
    err = err: On Error GoTo 0
    
    Select Case err
        Case 0: IsFileOpen = False
        Case 70:    IsFileOpen = True
        Case Else:    IsFileOpen = err
    End Select
    
    End Function

    답변이 도움이 되셨길 바랍니다.

    감사합니다.


    • 2020-11-06 10:31

      오 대박 입니다

      일단 코드 실행해봐야 겠습니다

      해외 사이트를 다 뒤져 봤는데도 결국엔 여기서 답이 나오네요


      • 2020-11-06 18:09
        채택된 답변

        안녕하세요? ^^

        죄송합니다. 명령문을 테스트하지 않고 올려드렸는데, 중간에 변수가 누락되어 있었네요.

        수정된 명령문을 사용해보시겠어요?

        감사합니다.

        Function IsFileOpen(filePath As String) As Variant
        
        '파일이 실행중인지 확인합니다.
        '사용예제: IsFileOpen("C\오빠두엑셀\테스트xlsx")
        '파일이 실행중일 시 TRUE를 반환합니다.
        'https://www.oppadu.com
        
        Dim i As Long: Dim ierr As Long
        
        On Error Resume Next
        i = FreeFile()
        
        Open filePath For Input Lock Read As #i: Close i
        ierr = err: On Error GoTo 0
        
        Select Case ierr
        Case 0: IsFileOpen = False
        Case 70: IsFileOpen = True
        Case Else: IsFileOpen = err
        End Select
        
        End Function

    전체 1,544
    번호 카테고리제목작성자작성일추천조회
    1539 대시보드
    New 대시보드 관련 질문사항입니다.
    H.B | 12:27 | 추천 0 | 조회 2
    H.B12:2702
    1538 함수/공식
    New INDIRECT함수 관련
    finebyme | 11:05 | 추천 0 | 조회 7
    finebyme11:0507
    1537 VBA
    New VBA 오픈 API 도와주세요 ㅜ
    에너지뿜 | 10:21 | 추천 0 | 조회 12
    에너지뿜10:21012
    1536 문서서식
    New ~여러개 시트 하나로 연결 하는 문제 (1)
    생활지원센터 | 2020.11.23 | 추천 0 | 조회 31
    생활지원센터2020.11.23031
    1535 함수/공식
    New 정확하게 나올 수 없는건가요? 첨부파일 (2)
    공월 | 2020.11.23 | 추천 0 | 조회 21
    공월2020.11.23021
    1534 피벗테이블
    New 피벗테이블 비율 구했는데.. 값이 맞지가 않아요..ㅠㅠ 첨부파일 (1)
    Lucy Kim | 2020.11.23 | 추천 0 | 조회 13
    Lucy Kim2020.11.23013
    1533 함수/공식
    New 날짜세는 엑셀 함수 첨부파일 (1)
    엑셀초보!!!!! | 2020.11.23 | 추천 0 | 조회 24
    엑셀초보!!!!!2020.11.23024
    1532 함수/공식
    New 전체 범위에서 여러 열에 입력되어 있는 특정값 추출하기.. 첨부파일 (1)
    현동전문가 | 2020.11.22 | 추천 0 | 조회 36
    현동전문가2020.11.22036
    1531 함수/공식
    New 원하는 정보 추출 엑셀 함수 (2)
    Jenny | 2020.11.22 | 추천 0 | 조회 38
    Jenny2020.11.22038
    1530 기능/도구
    New 행 일괄 추가(?) 문의드립니다. (1)
    웁웁 | 2020.11.22 | 추천 0 | 조회 34
    웁웁2020.11.22034
    1529 함수/공식
    New 도데체 어떻게 하는 좀 알려수세요 부탁드립니다 첨부파일 (2)
    acedo**** | 2020.11.21 | 추천 0 | 조회 55
    acedo****2020.11.21055
    1528 함수/공식
    New 엑셀 함수에 여러 범위 문자열 입력하여 계산하는 방법이 안풀립니다. 첨부파일 (3)
    회색자유 | 2020.11.21 | 추천 0 | 조회 26
    회색자유2020.11.21026
    1527 차트/그래프
    꺽은선형 그래프의 축 변경 첨부파일 (1)
    치즈쿠키 | 2020.11.21 | 추천 0 | 조회 31
    치즈쿠키2020.11.21031
    1526 함수/공식
    중복 값 데이터 찾기 문의 첨부파일 (1)
    혀니양님 | 2020.11.21 | 추천 0 | 조회 35
    혀니양님2020.11.21035
    1525 VBA
    다시 한번 더 질문드립니다. 피벗테이블의 값이 변화할 때마다 차트 데이터 범위를 메크로를 사용해서 자동으로 넣고싶습니다. 첨부파일 (3)
    iviolin**** | 2020.11.20 | 추천 0 | 조회 29
    iviolin****2020.11.20029
    1524 문서서식
    연결된 그림에서 선이 두꺼워지는 현상 (2) 답변완료
    퉁퉁이 | 2020.11.20 | 추천 0 | 조회 23
    퉁퉁이2020.11.20023
    1523 문서서식
    엑셀 x 워드 메일머지 사용법 관련 질문이 있습니다. 첨부파일 (5) 답변완료
    niceyoon58 | 2020.11.20 | 추천 0 | 조회 19
    niceyoon582020.11.20019
    1522 피벗테이블
    피벗테이블 작성 시 텍스트 출력 및 항목중 가장 높은 순위(rank) 구현 가능 할까요? 첨부파일 (2)
    국화쌍피앵두대왕 | 2020.11.20 | 추천 0 | 조회 31
    국화쌍피앵두대왕2020.11.20031
    1521 차트/그래프
    차트에 가중평균 선 추가 문제 첨부파일 (2)
    돌채 | 2020.11.20 | 추천 0 | 조회 23
    돌채2020.11.20023
    1520 VBA
    엑셀 배경제거 영역설정 첨부파일 (2)
    ezdaily | 2020.11.20 | 추천 0 | 조회 16
    ezdaily2020.11.20016
    1519 VBA
    초기화함수 관련 질문 첨부파일 (1)
    달타냥 | 2020.11.20 | 추천 0 | 조회 25
    달타냥2020.11.20025
    1518 문서서식
    조건부서식 이용한 셀색상과 서식 변경 첨부파일 (2)
    사천사야 | 2020.11.20 | 추천 0 | 조회 25
    사천사야2020.11.20025
    1517 함수/공식
    도와주세요 셀값에서 특정 문자값 추출(정확한 일치값) (4) 답변완료
    코딱 | 2020.11.20 | 추천 0 | 조회 26
    코딱2020.11.20026
    1516 함수/공식
    도와주세요!! 이중 유효성 검사 문제입니다. 첨부파일 (1)
    naver_5fae3491efc83 | 2020.11.20 | 추천 0 | 조회 23
    naver_5fae3491efc832020.11.20023
    1515 기능/도구
    서식 질문.. (3)
    4Block | 2020.11.19 | 추천 1 | 조회 39
    4Block2020.11.19139
    1514 함수/공식
    가장 유사한 값을 구하는 방법을 알고 싶습니다. 첨부파일 (1)
    won**** | 2020.11.19 | 추천 0 | 조회 20
    won****2020.11.19020
    1513 함수/공식
    index, match 함수 값이 없을때 #n/a 없에는방법 첨부파일 (2) 답변완료
    4Block | 2020.11.19 | 추천 0 | 조회 29
    4Block2020.11.19029
    1512 VBA
    매크로 + 엑셀 하이퍼링크 첨부파일 (1)
    엑셀초보!!!!! | 2020.11.19 | 추천 1 | 조회 23
    엑셀초보!!!!!2020.11.19123
    1511 함수/공식
    시트 간 중복된 값 찾기 OR 다른 값 찾기 첨부파일 (4)
    Yooon | 2020.11.19 | 추천 0 | 조회 35
    Yooon2020.11.19035
    1510 함수/공식
    vlookup 여러개의 결과값을 하나의 셀로 표시할수 있나요? (2)
    이동헌 | 2020.11.19 | 추천 0 | 조회 40
    이동헌2020.11.19040