Сохранить как не удалось Excel VBA

-Резюме: я пытаюсь написать код, который будет автоматически сохранять с именем текущей даты

-Проблема: появляется ошибка "Метод" Сохранить как "объекта" _Workbook "не открывается", когда компилятор достигает строки сохранения. Все остальное работает. Я показал всю функцию для справки.

Function createRecord()

    Dim rowCount As Integer

    Dim theDate As Date

    theDate = Format(Now(), "MM-DD-YY")

    Sheets("New Data").Select
    Cells.Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    Application.ActiveSheet.Name = "ChaseHistory"
    ActiveSheet.Paste
    rowCount = ActiveSheet.UsedRange.Rows.Count

    Sheets("Exceptions").Select
    'rowCount = ActiveSheet.UsedRange.Rows.Count
    Application.CutCopyMode = False
    ActiveSheet.UsedRange.Rows.Select
    Selection.Copy
    Sheets("ChaseHistory").Select
    ActiveSheet.Range("A" & rowCount + 2).Select
    ActiveSheet.Paste
    Range("A1").Select
    Cells.Select
    Selection.Copy

    ChDir "Z:\Customer_Service_Accounting\REPORTING & CONTROLS TEAM\Book And Balance_Katie\Chase Booking History"       'loads the crystal report

    Workbooks.Open Filename:= _
        "Z:\Customer_Service_Accounting\REPORTING & CONTROLS TEAM\Book And Balance_Katie\Chase Booking History\Do_Not_Delete.xlsx"

    Windows("Do_Not_Delete").Activate
    ActiveSheet.Paste

    Application.DisplayAlerts = False
                 '---------------This is the problem child--------------                                                                  'SAVING WORKBOOK
    ActiveWorkbook.SaveAs Filename:="Z:\Customer_Service_Accounting\REPORTING & CONTROLS TEAM\Book And Balance_Katie\Chase Booking History\" & CStr(theDate), FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False

    Application.DisplayAlerts = True

End Function

-Я добавил в метод преобразования в строку на дату, потому что я думал, что это может быть причиной проблемы, но имел тот же результат. Дайте мне знать, если вы видите здесь что-то не так. Спасибо!

2 ответа

Решение

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

Подводя итог, Excel не понравилось, что у меня в имени есть обратная косая черта ("/") (которую я действительно должен был знать)

Исправление: я закончил тем, что использовал это утверждение:

ActiveWorkbook.SaveAs Filename:="Z:...\" & "Chase " & _
    Month(theDate) & "_" & Day(theDate) & "_" & Year(theDate) & ".xlsx"

Таким образом, все, что я действительно сделал здесь, было пост месяца, дня и года вместе в строку, разделенную подчеркиванием, чтобы избежать обратной косой черты.

Спасибо за вашу помощь, Гаффи!

Вы пробовали что-то подобное?

ActiveWorkbook.SaveAs Filename:="Z:\Customer_Service_Accounting\REPORTING & CONTROLS TEAM\Book And Balance_Katie\Chase Booking History\" & Format(theDate, "mm.dd.yy"), FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

Чтобы выделить: я изменил CStr(theDate) в Format(theDate, "mm.dd.yy") & ".xlsx", но вы можете использовать другие форматы, если это необходимо.

Объяснение:

theDate имеет тип Date (увидеть: Dim theDate As Date), поэтому при использовании используется полная строка формата даты / времени CStr(), Это приведет к чему-то вроде этого:

Debug.Print CStr(Now()) 
7/6/2012 7:23:38 AM

Что, вероятно, приведет к тому, что ваша система отклонит допустимые символы в имени файла.

Другие вопросы по тегам