Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

удаление формул и макросов в копируемом документе

Автор Олег Корзников, 27.10.2011, 17:51

« назад - далее »

Олег Корзников

Уважаемые эксперты
я в вба не силён, выцепил на форуме макрос который при закрытии файла создаёт его резервную копию в указанной удалённой папке

Private Sub Workbook_BeforeClose(Cancel As Boolean)

ThisWorkbook.ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:= _
  "G:\1\проба на " & Format(Now, "dd.mm.yyyy_hh.mm.ss") & ".xls"
ActiveWindow.Close
End Sub

А как сделать чтобы при этом он удалял из резервной копии файла все макросы и формулы, оставляя только значения
NULL

kuklp

#1
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Dim sh As Worksheet: Set sh = ActiveSheet
   With ThisWorkbook.Worksheets.Add
       sh.UsedRange.Copy .[a1]
       .UsedRange.Value = .UsedRange.Value
       .Move: ActiveWorkbook.SaveAs Filename:= _
       "G:\1\проба на " & Format(Now, "dd.mm.yyyy_hh.mm.ss") & ".xls"
       ActiveWindow.Close
   End With
Me.Saved = True
End Sub

Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Prist

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

kuklp

Дима:
Цитата: Олег Корзников от 27.10.2011, 17:51
из резервной копии файла все макросы и формулы, оставляя только значения
, там уже нечего удалять:-)
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Prist

Почему уже нечего? Если человек просит - значит есть чего. Как я понимаю, резервной копией он называет просто копию книги(копия создается кодом через .SaveAs). А т.к. копия имеет расширение .xls, то я полагаю, что макросы никуда не исчезают сами по себе.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

kuklp

Ты наверное не читал мой вариант. Там уже нет макросов в копии.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Prist

#6
Читал. Я просто дал ссылку на вариант удаления макросов. Вдруг в будущем понадобиться не один лист копировать?

И еще момент вспомнил из практики: не всегда копирование диапазона приемлемо. Сложные таблицы могут "поехать" форматами. Особенно это касается таблиц с ячейками, строки которых беспорядочным образом выровнены по высоте. Если ширины столбцов можно скопирвоать, то высота строк недосягаема для таких фокусов без танцев с бубном. Да и прочие сюрпризы могут быть, особенно с объединенными ячейками.
Но это так, лирическое отступление...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

Олег Корзников

#7
спасибо за содействие
только почему то раньше при закрытии спрашивало сохранить или нет изменения в файле
а сейчас просто закрывает и не сохраняет изменения
NULL