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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос макро рекордером - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Макрос макро рекордером
dx84 Дата: Понедельник, 21.04.2014, 15:18 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: -8 ±
Замечаний: 80% ±

Excel 2010
Всем доброго дня!
Записал макрос макро рекордером, все вроде бы и не плохо, но при активации макроса на доли секунд заметно переход с исходного (листа заказ) на другие рабочие листы и обратно в исходник. Можно ли все это дело как не будь ускорить.

[vba]
Код
Sheets("отчет расхода материала").Select
Range("D4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!RC[5]:заказ!R[216]C[5],""дсп"",заказ!RC[11]:R[216]C[11])"
Range("D5").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-1]C[19]:заказ!R[215]C[19],""дсп"",заказ!R[-1]C[25]:R[215]C[25])"
Range("D10").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-6]C[5]:заказ!R[210]C[5],""двп"",заказ!R[-6]C[11]:R[210]C[11])"
Range("D11").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-7]C[19]:заказ!R[209]C[19],""двп"",заказ!R[-7]C[25]:R[209]C[25])"
Range("D16").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-12]C[5]:заказ!R[204]C[5],""дсп"",заказ!R[-12]C[12]:R[204]C[12])"
Range("D17").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-13]C[19]:заказ!R[203]C[19],""дсп"",заказ!R[-13]C[26]:R[203]C[26])"
Range("D22").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-18]C[5]:заказ!R[198]C[5],""дсп ал"",заказ!R[-18]C[8]:R[198]C[8])"
Range("D23").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-19]C[19]:заказ!R[197]C[19],""дсп ал"",заказ!R[-19]C[22]:R[197]C[22])"
Range("D25").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-21]C[5]:заказ!R[199]C[5],""дсп ал"",заказ!R[-21]C[13]:R[195]C[13])"
Range("D26").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-22]C[19]:заказ!R[194]C[19],""дсп ал"",заказ!R[-22]C[27]:R[194]C[27])"
Range("D27").Select
ActiveWindow.SmallScroll Down:=9
Range("D28").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-24]C[5]:заказ!R[192]C[5],""дсп ал"",заказ!R[-24]C[11]:R[192]C[11])"
Range("D29").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-25]C[19]:заказ!R[191]C[19],""дсп ал"",заказ!R[-25]C[25]:R[191]C[25])"
Range("D34").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-30]C[5]:заказ!R[186]C[5],""мдф ал"",заказ!R[-30]C[8]:R[186]C[8])"
Range("D35").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-31]C[19]:заказ!R[185]C[19],""мдф ал"",заказ!R[-31]C[22]:R[185]C[22])"
Range("D36").Select
ActiveWindow.SmallScroll Down:=6
Range("D37").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-33]C[5]:заказ!R[183]C[5],""мдф ал"",заказ!R[-33]C[13]:R[183]C[13])"
Range("D38").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-34]C[19]:заказ!R[182]C[19],""мдф ал"",заказ!R[-34]C[27]:R[182]C[27])"
Range("D40").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-36]C[5]:заказ!R[180]C[5],""мдф ал"",заказ!R[-36]C[11]:R[180]C[11])"
Range("D41").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-37]C[19]:заказ!R[179]C[19],""мдф ал"",заказ!R[-37]C[25]:R[179]C[25])"
Range("D42").Select
ActiveWindow.SmallScroll Down:=12
Range("D46").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-42]C[5]:заказ!R[174]C[5],""мдф п"",заказ!R[-42]C[8]:R[174]C[8])"
Range("D47").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-43]C[19]:заказ!R[173]C[19],""мдф п"",заказ!R[-43]C[22]:R[173]C[22])"
Range("D49").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-45]C[5]:заказ!R[171]C[5],""мдф п"",заказ!R[-45]C[14]:R[171]C[14])"
Range("D50").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-46]C[19]:заказ!R[170]C[19],""мдф п"",заказ!R[-46]C[28]:R[170]C[28])"
Range("D52").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-48]C[5]:заказ!R[168]C[5],""мдф п"",заказ!R[-48]C[11]:R[168]C[11])"
Range("D53").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-49]C[19]:заказ!R[167]C[19],""мдф п"",заказ!R[-49]C[25]:R[167]C[25])"
Range("D53").Select
ActiveWindow.SmallScroll Down:=6
Range("D58").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-54]C[19]:заказ!R[162]C[19],""ст"",заказ!R[-54]C[29]:R[162]C[29])"
Range("D59").Select
Sheets("заказ").Select
Range("O4").Select
ActiveCell.FormulaR1C1 = "=(RC[-5]*RC[-4]*RC[-3])/1000000"
Range("P4").Select
ActiveCell.FormulaR1C1 = _
"=(RC[-6]*RC[-3]*RC[-4])/1000+(RC[-5]*RC[-2]*RC[-4])/1000"
Range("Q4").Select
ActiveCell.FormulaR1C1 = "=(RC[-7]*2*RC[-5])/1000+(RC[-6]*2*RC[-5])/1000"
Range("R4").Select
ActiveCell.FormulaR1C1 = "=(RC[-7]*2*RC[-6])/1000"
Range("R5").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
Range("AC4").Select
ActiveCell.FormulaR1C1 = "=(RC[-5]*RC[-4]*RC[-3])/1000000"
Range("AD4").Select
ActiveCell.FormulaR1C1 = _
"=(RC[-6]*RC[-3]*RC[-4])/1000+(RC[-5]*RC[-2]*RC[-4])/1000"
Range("AE4").Select
ActiveCell.FormulaR1C1 = "=(RC[-7]*2*RC[-5])/1000+(RC[-6]*2*RC[-5])/1000"
Range("AF4").Select
ActiveCell.FormulaR1C1 = "=RC[-7]*2*RC[-6]/1000"
Range("AG4").Select
ActiveCell.FormulaR1C1 = "=RC[-9]*RC[-7]/1000"
Range("AC4:AG4").Select
Selection.AutoFill Destination:=Range("AC4:AG220"), Type:=xlFillDefault
Range("AC4:AG220").Select
ActiveWindow.SmallScroll Down:=-213
Range("O4:R4").Select
Selection.AutoFill Destination:=Range("O4:R220"), Type:=xlFillDefault
Range("O4:R220").Select
ActiveWindow.SmallScroll Down:=-222
Sheets("алюминий").Select
ActiveWindow.SmallScroll Down:=-3
Range("B5:H5").Select
Selection.AutoFill Destination:=Range("B5:H222"), Type:=xlFillDefault
Range("B5:H222").Select
Sheets("заказ").Select
[/vba]
 
Ответить
СообщениеВсем доброго дня!
Записал макрос макро рекордером, все вроде бы и не плохо, но при активации макроса на доли секунд заметно переход с исходного (листа заказ) на другие рабочие листы и обратно в исходник. Можно ли все это дело как не будь ускорить.

[vba]
Код
Sheets("отчет расхода материала").Select
Range("D4").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!RC[5]:заказ!R[216]C[5],""дсп"",заказ!RC[11]:R[216]C[11])"
Range("D5").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-1]C[19]:заказ!R[215]C[19],""дсп"",заказ!R[-1]C[25]:R[215]C[25])"
Range("D10").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-6]C[5]:заказ!R[210]C[5],""двп"",заказ!R[-6]C[11]:R[210]C[11])"
Range("D11").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-7]C[19]:заказ!R[209]C[19],""двп"",заказ!R[-7]C[25]:R[209]C[25])"
Range("D16").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-12]C[5]:заказ!R[204]C[5],""дсп"",заказ!R[-12]C[12]:R[204]C[12])"
Range("D17").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-13]C[19]:заказ!R[203]C[19],""дсп"",заказ!R[-13]C[26]:R[203]C[26])"
Range("D22").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-18]C[5]:заказ!R[198]C[5],""дсп ал"",заказ!R[-18]C[8]:R[198]C[8])"
Range("D23").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-19]C[19]:заказ!R[197]C[19],""дсп ал"",заказ!R[-19]C[22]:R[197]C[22])"
Range("D25").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-21]C[5]:заказ!R[199]C[5],""дсп ал"",заказ!R[-21]C[13]:R[195]C[13])"
Range("D26").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-22]C[19]:заказ!R[194]C[19],""дсп ал"",заказ!R[-22]C[27]:R[194]C[27])"
Range("D27").Select
ActiveWindow.SmallScroll Down:=9
Range("D28").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-24]C[5]:заказ!R[192]C[5],""дсп ал"",заказ!R[-24]C[11]:R[192]C[11])"
Range("D29").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-25]C[19]:заказ!R[191]C[19],""дсп ал"",заказ!R[-25]C[25]:R[191]C[25])"
Range("D34").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-30]C[5]:заказ!R[186]C[5],""мдф ал"",заказ!R[-30]C[8]:R[186]C[8])"
Range("D35").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-31]C[19]:заказ!R[185]C[19],""мдф ал"",заказ!R[-31]C[22]:R[185]C[22])"
Range("D36").Select
ActiveWindow.SmallScroll Down:=6
Range("D37").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-33]C[5]:заказ!R[183]C[5],""мдф ал"",заказ!R[-33]C[13]:R[183]C[13])"
Range("D38").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-34]C[19]:заказ!R[182]C[19],""мдф ал"",заказ!R[-34]C[27]:R[182]C[27])"
Range("D40").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-36]C[5]:заказ!R[180]C[5],""мдф ал"",заказ!R[-36]C[11]:R[180]C[11])"
Range("D41").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-37]C[19]:заказ!R[179]C[19],""мдф ал"",заказ!R[-37]C[25]:R[179]C[25])"
Range("D42").Select
ActiveWindow.SmallScroll Down:=12
Range("D46").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-42]C[5]:заказ!R[174]C[5],""мдф п"",заказ!R[-42]C[8]:R[174]C[8])"
Range("D47").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-43]C[19]:заказ!R[173]C[19],""мдф п"",заказ!R[-43]C[22]:R[173]C[22])"
Range("D49").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-45]C[5]:заказ!R[171]C[5],""мдф п"",заказ!R[-45]C[14]:R[171]C[14])"
Range("D50").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-46]C[19]:заказ!R[170]C[19],""мдф п"",заказ!R[-46]C[28]:R[170]C[28])"
Range("D52").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-48]C[5]:заказ!R[168]C[5],""мдф п"",заказ!R[-48]C[11]:R[168]C[11])"
Range("D53").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-49]C[19]:заказ!R[167]C[19],""мдф п"",заказ!R[-49]C[25]:R[167]C[25])"
Range("D53").Select
ActiveWindow.SmallScroll Down:=6
Range("D58").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(заказ!R[-54]C[19]:заказ!R[162]C[19],""ст"",заказ!R[-54]C[29]:R[162]C[29])"
Range("D59").Select
Sheets("заказ").Select
Range("O4").Select
ActiveCell.FormulaR1C1 = "=(RC[-5]*RC[-4]*RC[-3])/1000000"
Range("P4").Select
ActiveCell.FormulaR1C1 = _
"=(RC[-6]*RC[-3]*RC[-4])/1000+(RC[-5]*RC[-2]*RC[-4])/1000"
Range("Q4").Select
ActiveCell.FormulaR1C1 = "=(RC[-7]*2*RC[-5])/1000+(RC[-6]*2*RC[-5])/1000"
Range("R4").Select
ActiveCell.FormulaR1C1 = "=(RC[-7]*2*RC[-6])/1000"
Range("R5").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
Range("AC4").Select
ActiveCell.FormulaR1C1 = "=(RC[-5]*RC[-4]*RC[-3])/1000000"
Range("AD4").Select
ActiveCell.FormulaR1C1 = _
"=(RC[-6]*RC[-3]*RC[-4])/1000+(RC[-5]*RC[-2]*RC[-4])/1000"
Range("AE4").Select
ActiveCell.FormulaR1C1 = "=(RC[-7]*2*RC[-5])/1000+(RC[-6]*2*RC[-5])/1000"
Range("AF4").Select
ActiveCell.FormulaR1C1 = "=RC[-7]*2*RC[-6]/1000"
Range("AG4").Select
ActiveCell.FormulaR1C1 = "=RC[-9]*RC[-7]/1000"
Range("AC4:AG4").Select
Selection.AutoFill Destination:=Range("AC4:AG220"), Type:=xlFillDefault
Range("AC4:AG220").Select
ActiveWindow.SmallScroll Down:=-213
Range("O4:R4").Select
Selection.AutoFill Destination:=Range("O4:R220"), Type:=xlFillDefault
Range("O4:R220").Select
ActiveWindow.SmallScroll Down:=-222
Sheets("алюминий").Select
ActiveWindow.SmallScroll Down:=-3
Range("B5:H5").Select
Selection.AutoFill Destination:=Range("B5:H222"), Type:=xlFillDefault
Range("B5:H222").Select
Sheets("заказ").Select
[/vba]

Автор - dx84
Дата добавления - 21.04.2014 в 15:18
Abakumov Дата: Понедельник, 21.04.2014, 15:49 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
В начало кода ставим
[vba]
Код

Application.ScreenUpdating = False
[/vba]
В конец
[vba]
Код

Application.ScreenUpdating = True
[/vba]


Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Ответить
СообщениеВ начало кода ставим
[vba]
Код

Application.ScreenUpdating = False
[/vba]
В конец
[vba]
Код

Application.ScreenUpdating = True
[/vba]

Автор - Abakumov
Дата добавления - 21.04.2014 в 15:49
dx84 Дата: Понедельник, 21.04.2014, 16:05 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: -8 ±
Замечаний: 80% ±

Excel 2010
Abakumov, Спасибо! все работает!
 
Ответить
СообщениеAbakumov, Спасибо! все работает!

Автор - dx84
Дата добавления - 21.04.2014 в 16:05
  • Страница 1 из 1
  • 1
Поиск:

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