Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2018, 13:50   #1
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию Упростить макрос расчета

Добрый день, уважаемые форумчане!

Есть макрос, который написан "макрорекордером", но дело в том, что при расчетах, зависает комп. Можно упростить макрос?
Есть формулы в 10-й строке и желательно чтобы они сохранились в этой строке, так как я копирую формулы в 10-й строке и вставляю формулы до трехсотой строки и дальше идет расчет остальных строк (может из-за этого и зависает)? А может сразу задавать формулы до трехсотой строки а потом с 11-й строки рассчитанный результат вставлять как значение?
Но 10-ю строку не нужно вставлять как значение, эта строка будет как наглядный пример для проверки расчета формул.
Вложения
Тип файла: rar ГОФРА_ф.rar (57.8 Кб, 11 просмотров)
amadeus017 вне форума Ответить с цитированием
Старый 17.08.2018, 16:21   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

удаление select"ов не дает нужного результат?
Код:
Columns("A:A").ColumnWidth = 16
    Columns("A:AE").EntireColumn.Hidden = False
    Rows("9:9").AutoFilter
    Rows("9:9").AutoFilter

    Range("R10:R300").FormulaR1C1 = "=SUMIF('$'!C3,RC2,'$'!C[11])"

    Range("R10").Copy
    Range("C10:Q10").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

    Application.CutCopyMode = False
    Range("S10").FormulaR1C1 = "=SUMIF(НС!C[-14],RC2,НС!C[-13])"
    Range("U10").FormulaR1C1 = "=RC[-1]*R7C21"
    Range("V10").FormulaR1C1 = "=SUMIF(Путь!C[-17],RC2,Путь!C[-12])"
    Range("W10").FormulaR1C1 = "=SUMIF(Путь!C[-18],RC2,Путь!C[-12])"
    Range("Y10").FormulaR1C1 = "=RC[-4]-RC[-3]-RC[-2]+RC[-1]"
    Range("Z10").FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-24],SPR!C[-22]:C[-12],2,0),1)"
    Range("AB10").FormulaR1C1 = _
        "=IF(RC[-1]="""",ROUNDUP(N(RC[-3])/RC[-2],0)*RC[-2],RC[-1])"
    Range("A10").FormulaR1C1 = "=SUM(RC[2]:RC[22])<>0"
    Range("A10").Copy
    Range("A11:A300").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    
    Application.CutCopyMode = False
    Range("C10:Z10").Copy
    Range("C11:Z300").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("AB10").Copy
    Range("AB11:AB300").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range(Rows("9:9"), Rows("9:9").End(xlDown)).Select
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("XX-20XX").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("XX-20XX").Sort.SortFields.Add Key:=Range( _
        "A10:A300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    ActiveWorkbook.Worksheets("XX-20XX").Sort.SortFields.Add Key:=Range( _
        "Y10:Y300"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("XX-20XX").Sort
        .SetRange Range("A9:AC300")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveSheet.Range("$A$9:$AB$300").AutoFilter Field:=1, Criteria1:="ИСТИНА"
    
    Columns("A:A").EntireColumn.Hidden = True
    Columns("C:N").EntireColumn.Hidden = True
    Range("B1").Select
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.08.2018, 05:35   #3
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Поставил код, на первый взгляд все хорошо, на других таблицах буду пробовать.
Удаление "селектов" начал делать, но запутался, где можно удалить, а где нельзя. Вот по этому и обратился к специалистам за помощью.

Спасибо за то что не оставили меня с этим вопросом!
amadeus017 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упростить макрос. KOSTIK1 Microsoft Office Excel 4 08.09.2014 17:26
как упростить макрос Obey177 Microsoft Office Excel 4 20.08.2012 19:01
Возможно ли упростить макрос? KOSTIK1 Microsoft Office Excel 6 31.08.2011 14:01
Упростить макрос valerij Microsoft Office Excel 8 20.01.2011 12:10
помогите упростить простой макрос frantic150 Microsoft Office Excel 2 23.06.2009 04:55