2014-09-25 2 views
-1

Я пытаюсь создать макрос, чтобы сделать BACK-UP текущего отчета в отдельную папку, и мне интересно, есть ли способ добавления значения в функцию Format.Добавление значения в формат (диапазон («a1»), «MMMM yyyy»)

Пример:

ActiveWorkbook.SaveAs Filename:= _ 
    "\\<IP ADDRESS>\" & Format(Range("a1") + 32, "MMMM yyyy") & "\<file name>" & Format(Range("a1"), "mm dd yy")&".xlsx" 

In my Workbook, Cell A1 is 09/01/2014 

Когда я запускаю макрос, я получаю сообщение об ошибке. Может кто-нибудь, пожалуйста, назовите меня в правильном направлении на этом? У меня есть 15-20 файлов, которые у меня есть BACK-UP.

+2

Что такое ошибка что вы получаете? Без ваших точных данных мы не можем его воспроизвести. –

+0

«Я получаю сообщение об ошибке» не является описанием проблемы, если вы не сообщите нам, что это за ошибка, включая * точное сообщение об ошибке, которое вы видите *. У вас есть эта информация; нет причин не предоставлять его нам, если вы хотите, чтобы мы вам помогли. –

ответ

0

Формула выглядит отлично, при условии, что имя файла не содержит никаких незаконных символов, и папка существует. Убедитесь, что активным листом является тот, у которого есть дата на нем. Если этого не произойдет, сохраните дату в переменной перед сменой листов или создайте дату, которую вы хотите программно.

Как:

theDate = Range("a1") 

<sheet change> 

ActiveWorkbook.SaveAs Filename:= _ 
    "\\<IP ADDRESS>\" & Format(theDate + 32, "MMMM yyyy") _ 
    & "\<file name>" & Format(theDate, "mm dd yy")&".xlsx" 

Если формат папки (theDate + 32, "MMMM гггг") не существует, вы должны сначала создать его:

MkDir \\<IP ADDRESS>\" & Format(theDate + 32, "MMMM yyyy") 
+0

Я только что открыл функцию DateAdd. DateAdd («m», 1, Range («a1»)) даст мне то, что я ищу. Я благодарю вас за вашу помощь. – craig

Смежные вопросы