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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2009, 11:15   #11
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
for i = to n-1?
это опечатка, писал просто с руки, а компилятор форума программистов не проверяет код на корректность (строку не подчеркнул, красным не выделил...)
следует читать: for i = 0 to n-1.
до сих пор не знаю, что написать в n, пусть будет 5.
Код:
n = 5
for r = 1 to 10
for i = 0 to n-1
with sheets(1)
cells(r,7) = cells(r,7) + .cells(i*15+1,1)
end with
next
next
Валера, кода-то написано с Гулькин нос, самостоятельно проанализировать никак? Цикл вложен в цикл, внутри выполняется одна единственная строка, в которой складываются значение двух ячеек
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.02.2009, 14:29   #12
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

1й вариант - только при копи-паст там пробел лишний вкрадывается - я это счас поправлю..
slan вне форума Ответить с цитированием
Старый 27.02.2009, 19:38   #13
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
это опечатка, написано с Гулькин нос, самостоятельно проанализировать никак?
Игорь, ну конечно, я все делал, просто это не то, складывается ведь не диапазоном, а:
cells(r,7) = cells(r,7) + .cells(i*15+1,1)
А1(при i=0) + A16(при i=1) + А31(при i=2)......
А где А2, А3, .....
Т. е. складываются только начальные ячейки диап. А1:А10, А16:А25...

slan
Теперь ОК, только у меня 30 штук диапазонов, прикинь длину, хотя сюда Лист1!$A$1:$A$10 можно цикл применить, попробую, интересно?

Последний раз редактировалось valerij; 27.02.2009 в 22:55.
valerij вне форума Ответить с цитированием
Старый 27.02.2009, 21:51   #14
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

да, вот так можно:
Код:
Sub Макрос1()
Dim i&
Names.Add "a", "1"
Range("G1:G10").Value = 0
For i = 1 To 15
    Names("a").RefersTo = "=" & Range("G1:G10").Address & "+" & Range(Cells(i * 15 - 14, 1), Cells((i + 1) * 15 - 20, 1)).Address
    Range("G1:G10").Value = [a]
Next
End Sub
но в принципе, этот метод удобен для получения именно массива VBA, а если его тут же приходится обратно на лист отправлять, то лучше воспользоваться кодом SAS888
slan вне форума Ответить с цитированием
Старый 28.02.2009, 00:03   #15
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

уже хорошо.
Цитата:
Т. е. складываются только начальные ячейки диап. А1:А10, А16:А25...
осталось только запустить процедуру и посмотреть, что действительно складывается.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.02.2009, 00:53   #16
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
уже хорошо.
осталось только запустить процедуру и посмотреть, что действительно складывается.
Игорь, без проблем, смотри, запусти макрос IgorGO
Вложения
Тип файла: rar Сумма Диапазонов.rar (11.4 Кб, 8 просмотров)

Последний раз редактировалось valerij; 28.02.2009 в 01:01.
valerij вне форума Ответить с цитированием
Старый 28.02.2009, 01:08   #17
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

спору нет. я облажался. макрос писал с руки, не запуская эксель.
0 я пропустил - это была опечатка. а тут явная ошибка.
жаль, что ты так и не смог ее исправить:
Код:
Sub IgorGO()
n = 5
For r = 1 To 10
For i = 0 To n - 1
With Sheets(1)
Cells(r, 7) = Cells(r, 7) + .Cells(i * 15 + r, 1)
End With
Next
Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.02.2009, 01:24   #18
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
жаль, что ты так и не смог ее исправить:
Да, теперь, ОК!!!
Игорь, просто нет времени, выпадающий список штудирую, идет др. месяц, много очень изменений, дай бог успеть, а тут уже готовые....., ну там собраны, посмотри!!
valerij вне форума Ответить с цитированием
Старый 28.02.2009, 01:49   #19
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Валера, написание макросов, которые необходимо каждый месяц менять, потому что месяц другой, это не программирование, собственно ты сам все знаешь... что это такое
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.04.2009, 13:52   #20
Lenon
 
Регистрация: 12.03.2009
Сообщений: 3
По умолчанию

Не пробовали range.Consolidate ??
Lenon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сводные таблицы на основе нескольких диапазонов WIC Microsoft Office Excel 3 18.05.2010 12:38
Выбор диапазонов диаграмм apfu00 Microsoft Office Excel 4 03.02.2009 17:04
сложение цифр densan Помощь студентам 9 19.10.2008 12:06
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Поразрядное сложение AlexBee Общие вопросы C/C++ 1 26.10.2007 22:45