Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Обработка статистических данных для числовых лотерей - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обработка статистических данных для числовых лотерей (Макросы/Sub)
Обработка статистических данных для числовых лотерей
djon2012 Дата: Суббота, 03.01.2015, 17:10 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 106
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день! Имеется макрос, нужна его оптимизация. На процесоре Phenom2 X4 3,4Ггц этот макрос выполняется минут 40. В макросе копируются значения ячеек, не формулы. Обработка данных происходит на листе Подстановка, вывод даннных на лист IN. Что бы лучше понять работу макроса нужно просмотреть его работу поэтапно. Выкладываю файл RAR архив разделенный на 2 части по 90Кб. Если возможно помогите пожалуйста. Спасибо!!!
[vba]
Код
Sub Подстановка()
'
' Макрос1 Макрос
'

'
Rem Dim tm: tm = Timer
Rem Application.WindowState = xlMinimized
Rem Application.ScreenUpdating = False
Sheets("in").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("Подстановка").Select
Rem Оптимизация макроса нужна с этого момента
For i = 0 To 7000
Range("B4").Select
Selection.Delete Shift:=xlToLeft
Rows("4:4").Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B90:CM161").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("in").Select
q = i * 72 + 2
p = i * 72 + 73
s = "c" + CStr(q)
v = "cn" + CStr(p)
Range(s).Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(s, (v)).Select
Selection.SpecialCells(xlCellTypeConstants, 4).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Sheets("Подстановка").Select
Next i
Rem Application.WindowState = xlMaximized
Rem Application.ScreenUpdating = True
Rem MsgBox Timer - tm
End Sub
[/vba]
К сообщению приложен файл: 1.part1.rar (90.0 Kb) · 1.part2.rar (89.1 Kb)


Сообщение отредактировал djon2012 - Воскресенье, 04.01.2015, 00:26
 
Ответить
СообщениеДобрый день! Имеется макрос, нужна его оптимизация. На процесоре Phenom2 X4 3,4Ггц этот макрос выполняется минут 40. В макросе копируются значения ячеек, не формулы. Обработка данных происходит на листе Подстановка, вывод даннных на лист IN. Что бы лучше понять работу макроса нужно просмотреть его работу поэтапно. Выкладываю файл RAR архив разделенный на 2 части по 90Кб. Если возможно помогите пожалуйста. Спасибо!!!
[vba]
Код
Sub Подстановка()
'
' Макрос1 Макрос
'

'
Rem Dim tm: tm = Timer
Rem Application.WindowState = xlMinimized
Rem Application.ScreenUpdating = False
Sheets("in").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("Подстановка").Select
Rem Оптимизация макроса нужна с этого момента
For i = 0 To 7000
Range("B4").Select
Selection.Delete Shift:=xlToLeft
Rows("4:4").Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B90:CM161").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("in").Select
q = i * 72 + 2
p = i * 72 + 73
s = "c" + CStr(q)
v = "cn" + CStr(p)
Range(s).Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(s, (v)).Select
Selection.SpecialCells(xlCellTypeConstants, 4).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Sheets("Подстановка").Select
Next i
Rem Application.WindowState = xlMaximized
Rem Application.ScreenUpdating = True
Rem MsgBox Timer - tm
End Sub
[/vba]

Автор - djon2012
Дата добавления - 03.01.2015 в 17:10
wild_pig Дата: Суббота, 03.01.2015, 18:08 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Про файл уже написали. Что должен делать этот макрос?
 
Ответить
СообщениеПро файл уже написали. Что должен делать этот макрос?

Автор - wild_pig
Дата добавления - 03.01.2015 в 18:08
wild_pig Дата: Воскресенье, 04.01.2015, 09:15 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Файлик
Стало чуть быстрее


Сообщение отредактировал wild_pig - Воскресенье, 04.01.2015, 09:20
 
Ответить
СообщениеФайлик
Стало чуть быстрее

Автор - wild_pig
Дата добавления - 04.01.2015 в 09:15
djon2012 Дата: Воскресенье, 04.01.2015, 10:37 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 106
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Большое спасибо!!! Стало действительно быстрее.
 
Ответить
СообщениеБольшое спасибо!!! Стало действительно быстрее.

Автор - djon2012
Дата добавления - 04.01.2015 в 10:37
Michael_S Дата: Воскресенье, 04.01.2015, 12:00 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
djon2012, а что делает этот макрос?
...чет я не понял...
 
Ответить
Сообщениеdjon2012, а что делает этот макрос?
...чет я не понял...

Автор - Michael_S
Дата добавления - 04.01.2015 в 12:00
djon2012 Дата: Воскресенье, 04.01.2015, 13:36 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 106
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Mishael s, этот макрос, это один из макросов по (наиболее трудоемкий) промежуточной обработке данных числовой лотереи для последующего прогнозирования чисел (пытаюсь шото сотворить). Большое спасибо Wild_Pig за оптимизацию макроса, стало быстрее в 3,3 раза.
 
Ответить
СообщениеMishael s, этот макрос, это один из макросов по (наиболее трудоемкий) промежуточной обработке данных числовой лотереи для последующего прогнозирования чисел (пытаюсь шото сотворить). Большое спасибо Wild_Pig за оптимизацию макроса, стало быстрее в 3,3 раза.

Автор - djon2012
Дата добавления - 04.01.2015 в 13:36
wild_pig Дата: Воскресенье, 04.01.2015, 15:20 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
макрос выполняется минут 40

стало быстрее в 3,3 раза.

У меня на этом примере отрабатывает за 180 с.
 
Ответить
Сообщение
макрос выполняется минут 40

стало быстрее в 3,3 раза.

У меня на этом примере отрабатывает за 180 с.

Автор - wild_pig
Дата добавления - 04.01.2015 в 15:20
djon2012 Дата: Воскресенье, 04.01.2015, 17:53 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 106
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемый Wild_Pig на примере который Вы оптимизировали у меня отрабатывает за 350 с, у Вас 180 с. Пример который я выложил не отображал полного обьема обрабатываемых данных, пришлось кое где подкоректировать Ваш оптимизированный макрос. Так вот неоптимизированный макрос у меня выполнялся приблизительно 40 минут, оптимизированный 12 минут. Разница по времени выполнения макроса может быть связана с процессором. У меня AMD Phenom2 X4 965 3,4 Ггц. На процессорах Intel обработка идет быстрее. У моего знакомого на процессоре Intel Core I7 4770 3,5 Ггц я запускал неоптимизированный макрос, время его выполнения составило приблизительно 15 минут против моих 40.
 
Ответить
СообщениеУважаемый Wild_Pig на примере который Вы оптимизировали у меня отрабатывает за 350 с, у Вас 180 с. Пример который я выложил не отображал полного обьема обрабатываемых данных, пришлось кое где подкоректировать Ваш оптимизированный макрос. Так вот неоптимизированный макрос у меня выполнялся приблизительно 40 минут, оптимизированный 12 минут. Разница по времени выполнения макроса может быть связана с процессором. У меня AMD Phenom2 X4 965 3,4 Ггц. На процессорах Intel обработка идет быстрее. У моего знакомого на процессоре Intel Core I7 4770 3,5 Ггц я запускал неоптимизированный макрос, время его выполнения составило приблизительно 15 минут против моих 40.

Автор - djon2012
Дата добавления - 04.01.2015 в 17:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обработка статистических данных для числовых лотерей (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!