.Cells.ClearFormats ' очистка форматов и .SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook 'Сохранение книги в "xlsx"
[/vba] Тогда будет на порядок быстрее, но тогда файл-база останется как был - и при повторном открытии опять будет тормозить. [offtop]мое любопытство хочет узнать результаты сравнений на проблемных файлах моего кода и кода Александра - организуете? Мне не на чем проверить, а для общего развития - очень интересно как шустрее получается[/offtop] Зы Саш (_Boroda_ ), зачем ты "съел" букву ? в xlCalculaltionManua
.Cells.ClearFormats ' очистка форматов и .SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook 'Сохранение книги в "xlsx"
[/vba] Тогда будет на порядок быстрее, но тогда файл-база останется как был - и при повторном открытии опять будет тормозить. [offtop]мое любопытство хочет узнать результаты сравнений на проблемных файлах моего кода и кода Александра - организуете? Мне не на чем проверить, а для общего развития - очень интересно как шустрее получается[/offtop] Зы Саш (_Boroda_ ), зачем ты "съел" букву ? в xlCalculaltionManuaSLAVICK
Sub speedOn() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.DisplayStatusBar = False Application.DisplayAlerts = False End Sub Sub speedOff() Application.StatusBar = False Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.CalculateBeforeSave = True Application.EnableEvents = True Application.DisplayStatusBar = True Application.DisplayAlerts = True DoEvents End Sub Sub Макрос1() speedOn With Workbooks("project_25.02.xls").Sheets(1) Range("A1").Resize(26773, 21) = .Range("A1").Resize(26773, 21).Value End With speedOff End Sub
[/vba] завершил свою работу за 5 сек... В итоге получилось, что надо. Такая разница во времени, ужас... Спасибо, Александр!
Макрос [vba]
Код
Sub speedOn() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.DisplayStatusBar = False Application.DisplayAlerts = False End Sub Sub speedOff() Application.StatusBar = False Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.CalculateBeforeSave = True Application.EnableEvents = True Application.DisplayStatusBar = True Application.DisplayAlerts = True DoEvents End Sub Sub Макрос1() speedOn With Workbooks("project_25.02.xls").Sheets(1) Range("A1").Resize(26773, 21) = .Range("A1").Resize(26773, 21).Value End With speedOff End Sub
[/vba] завершил свою работу за 5 сек... В итоге получилось, что надо. Такая разница во времени, ужас... Спасибо, Александр!Мурад
With Workbooks("project_25.02.xls").Sheets(1) Columns("B:B").NumberFormat = "@" Range("A1").Resize(26773, 21) = .Range("A1").Resize(26773, 21).Value End With
[/vba]
А так? [vba]
Код
With Workbooks("project_25.02.xls").Sheets(1) Columns("B:B").NumberFormat = "@" Range("A1").Resize(26773, 21) = .Range("A1").Resize(26773, 21).Value End With
Единственное... Макрос при преобразовании изменил все значения одного поля
Попробуйте еще мой код из поста 24 - там такого не будет. (Или для таких ячеек нужно предварительно подготовить текстовые форматы в ячейках.) Вопрос сколько будет отрабатывать. -- запустите если через минуты две не отработает - убейте процесс.
Единственное... Макрос при преобразовании изменил все значения одного поля
Попробуйте еще мой код из поста 24 - там такого не будет. (Или для таких ячеек нужно предварительно подготовить текстовые форматы в ячейках.) Вопрос сколько будет отрабатывать. -- запустите если через минуты две не отработает - убейте процесс.
а нафига довесок в виде отключений обновления и пересчета
Это я виноват Просто "лучше перебдеть чем недобдеть" - особенно когда непонятна причина зависания файла - я в своих проектах стараюсь всегда - сначала работы отключать все события - а в конце включать. у меня на сложных кодах - это сохраняет много времени, особенно если есть файлы с "летающими" формулами.
а нафига довесок в виде отключений обновления и пересчета
Это я виноват Просто "лучше перебдеть чем недобдеть" - особенно когда непонятна причина зависания файла - я в своих проектах стараюсь всегда - сначала работы отключать все события - а в конце включать. у меня на сложных кодах - это сохраняет много времени, особенно если есть файлы с "летающими" формулами. SLAVICK