Добавление MMYYYY для сохранения имени в Variant - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть код, который разбивает рабочие листы на новые рабочие книги и сохраняет их под именем в столбце B. Что я хочу сделать, это добавить «ABC MM_YYYY » в конец имени файла при сохранениикаждый файл.

Я знаю, что при настройке fileNm я должен вставлять строку, аналогичную этой:

Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy")

Я попытался

fileNm = Dir(loopFolder & "*ABC " & Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") & ".xlsx")

fileNm = Dir(loopFolder & "ABC " & Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") & "*.xlsx")

, но безуспешно. Если кто-то может подсказать мне, как это исправить, это было бы здорово.

Dim loopFolder As String
Dim fileNm As Variant
Dim myFiles As New Collection

loopFolder = "J:\Documents\Hookset\"
fileNm = Dir(loopFolder & "*.xlsx")

Do While fileNm <> ""
    myFiles.Add fileNm
    fileNm = Dir
Loop

* edit - я искал не ту часть кода, и вставка даты должна была быть здесь, а не выше

'' 'Dim FileExtStr в виде строки Dim FileFormatNum в виде длинной Dim xWs в качестве рабочей таблицы Dim xWb в качестве рабочей книги Dim FolderName в виде строки приложения.ScreenUpdating = False

Set xWb = Application.ActiveWorkbook
FolderName = xWb.Path & "\Hookset\" 
For Each xWs In xWb.Worksheets
    xWs.Copy
    If Val(Application.Version) < 12 Then
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
        Select Case xWb.FileFormat
            Case 51:
                FileExtStr = ".xlsx": FileFormatNum = 51
            Case 52:
                If Application.ActiveWorkbook.HasVBProject Then
                    FileExtStr = ".xlsm": FileFormatNum = 52
                Else
                    FileExtStr = ".xlsx": FileFormatNum = 51
                End If
            Case 56:
                FileExtStr = ".xls": FileFormatNum = 56
            Case Else:
                FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
    End If

    xFile = FolderName & "\" & Application.ActiveWorkbook.Sheets(1).Name & " ABC " & Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") & FileExtStr
    Application.ActiveWorkbook.SaveAs xFile, FileFormat:=FileFormatNum
Next

' ''

Я отсутствовал в xFile и теперь работает хорошо.

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