Страницы: 1
RSS
При закрытии книги создавать ее копию
 
я так думаю это будет написано макросом. У меня уже есть в книге макрос, то подскажите как его добавить,
Код
Dim iValuePrivate Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:C30")) Is Nothing Then
        Application.EnableEvents = False
        Target = Target + iValue
    End If
    Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C2:C30")) Is Nothing Then
        iValue = Target
    End If
End Sub
Изменено: vikttur - 04.10.2021 09:01:16
 
Если вы хотите при закрытии книги делать копию, то лучше всего использовать процедуру, которая срабатывает при закрытии книги.
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

В ней вы прописываете условие.
Если вам надо скопировать текущую книгу, то соответственно копируете её.
Код
Dim a$, b$
a = ThisWorkbook.Path & "\" & ThisWorkbook.Name 'ОТКУДА
b = "D:\" & ThisWorkbook.Name 'КУДА
CreateObject("Scripting.FileSystemObject").GetFile(a).Copy b
Изменено: Alemox - 04.10.2021 07:39:04
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Как добавить макрос к уже написанному?
 
Здравствуйте. Тема конечно не новая, ваши коды совсем не для этой задачи, их можете выбросить.
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
   ThisWorkbook.SaveCopyAs "C:\ПолныйПутьКвашейПапке" & _ Format(Date, "yyyy-mm-dd") & " - " & ThisWorkbook.Name
End Sub
Данный код нужно поместить в модуль ЭтаКнига, см., ссылку как это делается.
Приведенный вами в первом сообщении код, скорее всего находится в модуле листа.
Alemox, а как же документация по SaveCopyAs?
Изменено: DANIKOLA - 04.10.2021 08:24:44
 
Да это оно. то что надо. У меня В книге уже есть макрос.


Dim iValuePrivate Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C2:C30")) Is Nothing Then
      Application.EnableEvents = False
      Target = Target + iValue
  End If
  Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Cells.Count > 1 Then Exit Sub
  If Not Intersect(Target, Range("C2:C30")) Is Nothing Then
      iValue = Target
  End If
End Sub

как добавить этот

Private Sub Workbook_BeforeClose(Cancel As Boolean)    ThisWorkbook.SaveCopyAs "C:\ПолныйПутьКвашейПапке" & _ Format(Date, "yyyy-mm-dd") & " - " & ThisWorkbook.Name
End Sub

что бы это все работало
 
DANIKOLA,  Это не копия книги, а сохранение её в другом месте.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
павел соколов, плохое название. Предложите новое, из которого будет понятна задача - модераторы поменяют.
И код следует оформлять соответствующим тегом: ищите такую кнопку <...> и исправьте свои сообщения.
Страницы: 1
Наверх