Добрый день! Столкнулся со следующей проблемой: имеется таблица с большим количеством формул и, как следствие, при открытии книги эксель все формулы активируются, что приводит к зависанию программы. Я решил разбить вычисления на несколько этапов, воспользовавшись записью макросов. Мой порядок действий: 1. Очистил от формул все строки каждой таблицы, кроме первых строк; 2. Запустил команду "Запись макроса" и выполнил следующие действия: 1. скопировал формулы до конца таблицы; 2. заменил формулы значениями. 3. Повторил действие 2 несколько раз путем создания новых макросов. Получилось 5 макросов. Макрос 5 должен удалять на листе "Расчет" два столбца с формулами, либо заменять формулы значениями в этих столбцах. Но опять все получается печально - эксель зависает... Подскажите, пожалуйста, что можно сделать. Файл во вложении.
Добрый день! Столкнулся со следующей проблемой: имеется таблица с большим количеством формул и, как следствие, при открытии книги эксель все формулы активируются, что приводит к зависанию программы. Я решил разбить вычисления на несколько этапов, воспользовавшись записью макросов. Мой порядок действий: 1. Очистил от формул все строки каждой таблицы, кроме первых строк; 2. Запустил команду "Запись макроса" и выполнил следующие действия: 1. скопировал формулы до конца таблицы; 2. заменил формулы значениями. 3. Повторил действие 2 несколько раз путем создания новых макросов. Получилось 5 макросов. Макрос 5 должен удалять на листе "Расчет" два столбца с формулами, либо заменять формулы значениями в этих столбцах. Но опять все получается печально - эксель зависает... Подскажите, пожалуйста, что можно сделать. Файл во вложении.sgkorolew
Sub qq1() With ActiveSheet.UsedRange .Offset(2).Resize(.Rows.Count - 2).Value = .Offset(2).Resize(.Rows.Count - 2).Value End With End Sub Sub qq2() Dim ar With ActiveSheet.UsedRange ar = .Offset(1).Resize(1).Formula .Offset(2).Resize(.Rows.Count - 2).Value = ar End With End Sub
[/vba]
[vba]
Код
Sub qq1() With ActiveSheet.UsedRange .Offset(2).Resize(.Rows.Count - 2).Value = .Offset(2).Resize(.Rows.Count - 2).Value End With End Sub Sub qq2() Dim ar With ActiveSheet.UsedRange ar = .Offset(1).Resize(1).Formula .Offset(2).Resize(.Rows.Count - 2).Value = ar End With End Sub
RAN, добрый день! Сделал следующее: 1. Запустил макрос 4 на листе "Расчет", который скопировал формулы из ячеек R2:S2 в ячейки R3:S10000 скопировал значения из ячеек R2:S10000 в ячейки T2:U10000 Теперь нужно либо очистить ячейки R2:S10000 (ячейки с формулами, которые тормозят эксель), либо удалить столбцы R:S (столбцы с формулами), либо заменить формулы значениями в ячейках R2:S10000. 2. Изменил код макроса 5 на ваш код. Не получается выполнить макрос... В чем секрет?
RAN, добрый день! Сделал следующее: 1. Запустил макрос 4 на листе "Расчет", который скопировал формулы из ячеек R2:S2 в ячейки R3:S10000 скопировал значения из ячеек R2:S10000 в ячейки T2:U10000 Теперь нужно либо очистить ячейки R2:S10000 (ячейки с формулами, которые тормозят эксель), либо удалить столбцы R:S (столбцы с формулами), либо заменить формулы значениями в ячейках R2:S10000. 2. Изменил код макроса 5 на ваш код. Не получается выполнить макрос... В чем секрет? sgkorolew
Запустить на листе "Расчет" сначала qq2, затем qq1.
В списке макросов для qq2 и qq1 у меня активна только кнопка "Создать". Я нажимаю "Создать" для qq2 и у меня создается два новых макроса с пустым кодом.
Цитата
Возможно, нужно не только трясти?
Просто я думал, что тут ничего сложного.
Цитата
Запустить на листе "Расчет" сначала qq2, затем qq1.
В списке макросов для qq2 и qq1 у меня активна только кнопка "Создать". Я нажимаю "Создать" для qq2 и у меня создается два новых макроса с пустым кодом.sgkorolew
В списке макросов для qq2 и qq1 у меня активна только кнопка "Создать". Я нажимаю "Создать" для qq2 и у меня создается два новых макроса с пустым кодом.
В списке макросов для qq2 и qq1 у меня активна только кнопка "Создать". Я нажимаю "Создать" для qq2 и у меня создается два новых макроса с пустым кодом.