Сохранить как файл с динамической датой из того же места - PullRequest
0 голосов
/ 02 ноября 2018

Я обнаружил ошибку в коде, над которым я работаю ниже.

Sub Pasting
    Dim o as integer
    Dim i as integer
    Dim v as String

    o = 1
    i = 0

    Sheets("Sample").Visible = True
    Sheets("Sample").Select

    Do While i < 1
        Range("A:AA").Select
        Selection.Copy

        ActiveSheet.Next.Select
        On Error Goto PE

        Range("A1").Select
        Application.DisplayAlerts = False
        ActiveSheet.Paste
        Application.DisplayAlerts = True
    Loop

PE:
    Application.CutCopyMode = False
    Sheets("Sample").Visible = False
    Sheeets("Overall").Select

    v = "Sample File" & Format(DateAdd("m",1,Now), "Mmmm yyyy") & ".xlsb"
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & v
End Sub

Моя ошибка была

Ошибка времени выполнения 1004
Метод 'SaveAs' объекта'_Workbook Failed.

Процесс будет:

  1. Вы откроете предыдущий файл за предыдущий месяц

  2. Нажмите на файл, чтобы открыть образец листа с таблицей по умолчанию

  3. Запуск цикла до тех пор, пока все листы с 1 по 30 не будут вставлены с данными по умолчанию

  4. Макрос завершит цикл

  5. Макрос сохранит файл с тем же типом файла из того же места, где находится новый месяц.

  6. Закрыть файл и переопределить сообщения об ошибках.

1 Ответ

0 голосов
/ 02 ноября 2018

Как минимум три вещи

  1. Вы должны использовать имя / переменную книги, а не ActiveWorkbook, чтобы избежать случайного использования неправильной книги. Я не вижу по вашему коду откуда берется ActiveWorkbook. Одна опасность может состоять в том, что это непреднамеренно ThisWorkbook.
  2. Если ThisWorkbook еще не сохранен, то ThisWorkbook.Path будет "", и вы получите ошибку
  3. Вы должны указать формат файла для xlsb при сохранении (хотя, если это уже xlsb, ошибки не будет)

VBA:

Dim v As String
v = "Sample File" & Format(DateAdd("m", 1, Now), "Mmmm yyyy") & ".xlsb"
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & v, FileFormat:=50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...