powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ошибка в VBA при прописывании формулы
4 сообщений из 4, страница 1 из 1
ошибка в VBA при прописывании формулы
    #36116935
MIRNIY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла следующая проблема:

Смысл в том, чтобы там где итого, прописывалась не сумма итогов, а формула расчёта итога.
Входные данные:
_H______I_
16.4 895000
15.9 500940
0 0
0 0
18 8400
итого: = 16.4*895000+15.9*500940+0*0+0*0+18*8400, в виде формулы.
Данных по столбцам H и I много, и при обработки возникает ошибка: run-time error '9' out of memory, потому что длина формулы больше 1024.
Как можно по другому написать макрос и предпринять другие варианты?
ниже макрос.
...
Рейтинг: 0 / 0
ошибка в VBA при прописывании формулы
    #36116936
MIRNIY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макрос следующий:
For j = beg To i - 1
If j <> i - 1 Then
hsum = ("H" & j) + "*" + ("I" & j) + "+" + hsum
Else
hsum = hsum + ("H" & j) + "*" + ("I" & j)
End If
Next j
If Cells(i, 9) <> 0 Then
Range("H" & i).Formula = "=ROUND(" + "Sum(" + hsum + ")" + "/" + ("I" & i) + ",1)"
Else
Cells(i, 8) = 0
End If
В начале, в цикле пробегается по строкам с позиции beg до i-1 и пишет формулу, затем формула+формула. В конце получается длинная формула, которая не вмещается в память.

Пожалуйста, помогите решить проблему?
...
Рейтинг: 0 / 0
ошибка в VBA при прописывании формулы
    #36117748
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если правильно понял, то функция СУММПРОИЗВ (в русской локализации) делает то, что требуется. Только подставить в нее диапазоны.
...
Рейтинг: 0 / 0
ошибка в VBA при прописывании формулы
    #36117827
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно так, но не особо информативная формула получается
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
hsum =  0 
For j = beg To i -  1 
If j <> i -  1  Then
hsum = Evaluate(("H" & j) & "*" & ("I" & j) & "+" & hsum)
Else
hsum = Evaluate(hsum & "+" & ("H" & j) & "*" & ("I" & j))
End If
Next j
If Cells(i,  9 ) <>  0  Then
Range("H" & i).Formula = "=ROUND(" & "Sum(" & hsum & ")" & "/" & ("I" & i) & ",1)"
Else
Cells(i,  8 ) =  0 
End If
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ошибка в VBA при прописывании формулы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]