У меня есть большой цикл, который выполняет итерацию более 1000 данных. Вместо того, чтобы делать это как можно эффективнее (сохранение вывода в массив, а затем печать в конце), я был записывая значения в рабочий лист, а затем копируя и вставляя на другой лист для каждого прогона.как написать формулу как функцию рабочего листа
У меня есть пара вопросов, как теоретических, так и практических.
ли быстрее продолжать копировать/вставить для каждой строки, кроме этого в течение текущего рабочего листа, а затем скопировать и вставить окончательную таблицу данных в самом конце?
Как я могу переписать эту функцию как формулу рабочего листа. Причина, по которой я в настоящее время не использую массив, я не знаю, как переписать эту формулу как формулу non cell.
Dim avg_rng As Range
Set avg_rng = Sheets("OrdCloseTrade").Range(Cells(strt_pt(end_ct), j), Cells(end_pt(end_ct) -
1, j))
'Debug.Print sum_rng
Sheets("OrdCloseTrade").Cells(47, lent + 2).FormulaArray = _
"=AVERAGE(IF(ISNUMBER(" & avg_rng.Address & ")," & avg_rng.Address & "))"
что вы хотите вывод, что UDF (определяемые пользователем функции) быть? – sam092
avg_rng - это диапазон чисел и потенциально ошибки #VALUE. Я хочу написать функцию, подобную этой функции массива, которая будет выполняться и сохраняться внутри, не записывая на лист. Я думаю, что это заставит программу работать быстрее. Выход должен быть средним по диапазону, исключая значения ошибок. – googlekid
также по функции Я имел в виду .FormulaArray .... не отдельная функция VBA – googlekid