최신 버전의 Excel 통합 문서 버전을 확인하는 방법이 있습니까?

최신 버전의 Excel 통합 문서 버전을 확인하는 방법이 있습니까?

사용자가 작업할 수 있는 기본 Excel 통합 문서가 있습니다. 이 Excel 통합 문서의 기능은 매크로 등을 사용하여 다른 통합 문서를 복사하고 만드는 것입니다. 이 복사본은 모든 사람이 액세스할 수 있는 네트워크 드라이브에 있습니다. 문제는 누군가 이 버전을 데스크탑에 복사한 다음 나중에 이 기본 통합 문서의 새 버전을 만들어 낸 경우, 그 사람이 데스크탑에 복사한 이전 통합 문서에는 매크로에 대한 최신 업데이트가 포함되지 않는다는 것입니다. . 이전 통합 문서가 매크로를 실행하거나 이전 통합 문서가 작동하지 못하도록 확인하거나 방지하는 방법이 있습니까?

답변1

1 단계:네트워크 위치에서 기본 파일을 확인하는 매크로를 작성할 수 있습니다. Dir다음을 사용하여 FSO다음을 수행 할 수 있습니다 .

디렉터리:

Sub Test_File_Exist_With_Dir()
    Dim FilePath As String
    Dim TestStr As String

    FilePath = "\\Server\test\book1.xlsm"

    TestStr = ""
    On Error Resume Next
    TestStr = Dir(FilePath)
    On Error GoTo 0
    If TestStr = "" Then
        MsgBox "File doesn't exist"
    Else
        MsgBox "File exist"
    End If

End Sub

FSO:

Sub Test_File_Exist_FSO_Late_binding()
'No need to set a reference if you use Late binding
    Dim FSO As Object
    Dim FilePath As String

    Set FSO = CreateObject("scripting.filesystemobject")

    FilePath = "\\Server\test\book1.xlsm"

    If FSO.FileExists(FilePath) = False Then
        MsgBox "file doesn't exist"
    Else
        MsgBox "File exist"
    End If

End Sub

Sub Test_File_Exist_FSO_Early_binding()
'If you want to use the Intellisense help showing you the properties
'and methods of the objects as you type you can use Early binding.
'Add a reference to "Microsoft Scripting Runtime" in the VBA editor
'(Tools>References)if you want that.

    Dim FSO As Scripting.FileSystemObject
    Dim FilePath As String

    Set FSO = New Scripting.FileSystemObject

    FilePath = "\\Server\Ron\test\book1.xlsm"

    If FSO.FileExists(FilePath) = False Then
        MsgBox "File doesn't exist"
    Else
        MsgBox "File exist"
    End If

End Sub

2 단계:최신 버전이 있는지 확인하는 데 사용할 수 있는 해당 파일의 마지막 수정 날짜를 확인하도록 할 수 있습니다.

FileDateTime("\\Server\test\book1.xlsm")

샘플 결과:2016년 6월 1일 오후 7:40:18


3단계:최신 버전이 있으면 사용자에게 메시지 상자를 표시하여 네트워크 드라이브에서 새 버전을 복사하고 통합 문서를 닫을 수 있습니다. (네트워크 위치에서 사용자의 워크스테이션으로 복사/붙여넣기를 자동화하는 것은 권장하지 않습니다. 이는 쉽게 지저분해질 수 있고 이것이 없어도 여전히 필요한 작업을 수행하기 때문입니다.)

MsgBox "A new version of this file exists on the network share. Please use the new version. This workbook will now close."
ActiveWorkbook.Close savechanges:=False

참고자료:

관련 정보