У меня есть код, который разбивает рабочие листы на новые рабочие книги и сохраняет их под именем в столбце 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 и теперь работает хорошо.