XL: Резервное копирование через VBA
Помогите пожалуйста написать макрос для резервного копирования книги Excel. Т.е. есть книга и нужно, чтобы запустив макрос, она сохранялась в файл, в названии которого есть текущая дата и время ???
В ескселе это и так есть.
Нажми сохранить->Сервис->Общие параметры
и там поставь галочку "Всегда создавать резервную копию"
ИЛИ програмно
ActiveWorkbook.SaveAs Filename:= _
"C:\NAMEFILE.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Помогите пожалуйста написать макрос для резервного копирования книги Excel. Т.е. есть книга и нужно, чтобы запустив макрос, она сохранялась в файл, в названии которого есть текущая дата и время ???
Если надо время и дату, то используй Time,Date
В ескселе это и так есть.
Нажми сохранить->Сервис->Общие параметры
и там поставь галочку "Всегда создавать резервную копию"
ИЛИ програмно
ActiveWorkbook.SaveAs Filename:= _
"C:\NAMEFILE.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Спасибо за помощь!
Не могли бы Вы еще помочь?
ActiveWorkbook.SaveAs Filename:= _"C:\NAMEFILE.xls". Как сделать, чтобы вместо namefile автоматически вставлялась текущая дата. Как я понимаю, необходимо ввести некую переменную, которая была бы равна текущей дате. И вставить ее вместо namefile.xls. Но с VBA кодом у меня проблемы, я его очень мало знаю. Я только месяц назад взялся за его небольшое изучение. Литературы нет, приходится качать с сайта Microsoft примеры и выдирать куски кода для изучения.
Sub ReservSave(d?????)
d=Текущая дата??????
ActiveWorkbook.SaveAs Filename:=d, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _, CreateBackup:=False
End Sub
Помгите кто может...
Спасибо за помощь!
Не могли бы Вы еще помочь?
ActiveWorkbook.SaveAs Filename:= _"C:\NAMEFILE.xls". Как сделать, чтобы вместо namefile автоматически вставлялась текущая дата. Как я понимаю, необходимо ввести некую переменную, которая была бы равна текущей дате. И вставить ее вместо namefile.xls. Но с VBA кодом у меня проблемы, я его очень мало знаю. Я только месяц назад взялся за его небольшое изучение. Литературы нет, приходится качать с сайта Microsoft примеры и выдирать куски кода для изучения.
Sub ReservSave(d?????)
d=Текущая дата??????
ActiveWorkbook.SaveAs Filename:=d, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _, CreateBackup:=False
End Sub
Помгите кто может...
"d=Текущая дата??????"
d = Date + Time +".xls"
"d=Текущая дата??????"
d = Date + Time +".xls"
Я извинияюсь за свою настойчивость, но ничего не получается...
Sub Test()
d = Date + Time + ".xls"
ActiveWorkbook.SaveAs Filename:=d, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub
VBA ругается на d (Type Mismatch)...
И еще вопрос: как сделать, чтобы макрос запускался в указанное время при открытии книги.
Я извинияюсь за свою настойчивость, но ничего не получается...
Sub Test()
d = Date + Time + ".xls"
ActiveWorkbook.SaveAs Filename:=d, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub
VBA ругается на d (Type Mismatch)...
И еще вопрос: как сделать, чтобы макрос запускался в указанное время при открытии книги.
Выбери в редакторе "Эта книга"
Потом там где "General" Выбери "WorkBook" А с права выбери событие, если тебе надо его запустить при открытие, то пиши в "Open"
code:
Private Sub Workbook_Open()
.......
End Sub
Выбери в редакторе "Эта книга"
Потом там где "General" Выбери "WorkBook" А с права выбери событие, если тебе надо его запустить при открытие, то пиши в "Open"
code:
Private Sub Workbook_Open()
.......
End Sub
:-? :-? :-? :-? :-? :-? :-?
d = Date
d = Str(d)
ну или проще
d=str(date)
А вот рабочий примерчик:
Sub Test()
d = Str(Date)
t = Str(Time)
hh = Mid(t, 1, 2)
mm = Mid(t, 4, 2)
ss = Mid(t, 7, 2)
t = hh & "." & mm & "." & ss
FN = d & "_" & t & ".xls"
MsgBox FN
ActiveWorkbook.SaveAs Filename:=FN, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub
Auto_Open()
'Код для сохранения
End Sub
При открытии книги она будет сохранятся с текущей датой и временем. Вроде все... :)
Покеда!
А если сохранение файла необходимо при открытии книги, просто присвой имени макроса
Auto_Open()
'Код для сохранения
End Sub
При открытии книги она будет сохранятся с текущей датой и временем. Вроде все... :)
Покеда!
Спасибо!
Вот прислали аналог:
Application.OnTime TimeValue("12:00:00"), "CrtBackup"
Sub CrtBackup()
strName = Application.Workbooks(1).Name
strNewName = Date$
Application.Workbooks(1).SaveAs strNewName
Application.Workbooks(1).SaveAs strName
End Sub
Sub CrtBackup()
Unload frmAsk
With Application
.DefaultFilePath = "" 'Установить текущую папку
End With
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FolderExists("BackUp") Then 'Если папки Backup нет, то создать её
fs.CreateFolder ("Backup")
End If
Application.DisplayAlerts = False 'Не отображать предупреждения
strName = Application.Workbooks(1).FullName 'Настоящее имя книги
strNewName = "BackUp\" + Date$ 'Новое имя файла книги с датой
Application.Workbooks(1).SaveAs strNewName 'Сохранить как новое название книги
Application.Workbooks(1).SaveAs strName 'Сохранить как настоящее название книги
Application.DisplayAlerts = True 'Отображать предупреждения
End Sub
В "ThisWorkbook" можно написать следующее:
Private Sub Workbook_Activate()
Application.OnTime TimeValue("12:00:00"), "CrtBackup" 'Делать резервную копию в 12 часов
Application.OnTime TimeValue("18:00:00"), "CrtBackup" 'Делать резервную копию в 18 часов
End Sub
Спасибо всем за помощь!