Как изменить порядок строк именования файлов? - PullRequest
0 голосов
/ 30 марта 2019

У меня хорошо работает следующее для сохранения и создания версий резервных копий файлов в двух разных местах, но я хотел бы изменить последовательность строк в имени файла. Имя файла первым, дата и время второй. Пока безуспешно.

Sub SaveToLocations()
' Saves active file to current plus two other backup locations, appends date and time in front of file name

    Dim datim As String
    datim = Format(CStr(Now), "yyyy_mm_dd_hh_mm_ss_")

    ActiveWorkbook.SaveCopyAs "I:\FilesBackupCS\" & datim & ActiveWorkbook.Name
    ActiveWorkbook.SaveCopyAs "E:\Coconut Shade Docs\FilesBackupCS\" & datim & ActiveWorkbook.Name
    ActiveWorkbook.Save
End Sub

1 Ответ

0 голосов
/ 30 марта 2019

Вы можете использовать следующие три функции, чтобы сделать это

Function FileNameNoExtensionFromPath(strFullPath As String) As String

    Dim intStartLoc As Integer
    Dim intEndLoc As Integer
    Dim intLength As Integer

    intStartLoc = Len(strFullPath) - (Len(strFullPath) - InStrRev(strFullPath, "\") - 1)
    intEndLoc = Len(strFullPath) - (Len(strFullPath) - InStrRev(strFullPath, "."))
    intLength = intEndLoc - intStartLoc

    FileNameNoExtensionFromPath = Mid(strFullPath, intStartLoc, intLength)

End Function
Function FileExtensionFromPath(ByRef strFullPath As String) As String
    FileExtensionFromPath = Right(strFullPath, Len(strFullPath) - InStrRev(strFullPath, "."))
End Function
Function myFileName(ByVal wkb As Workbook, addString As String) As String
    myFileName = FileNameNoExtensionFromPath(wkb.FullName) & addString & "." & FileExtensionFromPath(wkb.FullName)
End Function

А в вашем коде

ActiveWorkbook.SaveCopyAs "I:\FBackupCS\" & myFileName(ActiveWorkbook, datim)
ActiveWorkbook.SaveCopyAs "E:\CS Docs\FBackupCS\" & myFileName(ActiveWorkbook, datim)

PS Я предполагаю, что вы можете объединить это с ответом на ваш другой пост

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...