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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2009, 13:50   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Сложение Диапазонов

Подскажите как макросом сложить диапазон ячеек с другого листа?
Пример: Лист3 G1:G10 :
G1:G10 = A1:A10 + A16:A25 + A31:A40 + ..... + Ax:Ay с Листа1(шаг 15)

Формулой это так
Лист3 G1:G10
{=Лист1!A1:A10+Лист1!A16:A25+Лист1! A31:A40}

В рекодере:
Код:
Sheets("Лист3").Select
    Range("G1:G10").Select
    Selection.FormulaArray = _
        "=Лист1!RC[-6]:R[9]C[-6]+Лист1!R[15]C[-6]:R[24]C[-6]+Лист1!R[30]C[-6]:R[39]C[-6]"

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

n = 5
for r = 1 to 10
for i = to n-1
with sheets(1)
cells(r,7) = cells(r,7) + .cells(i*15+1,1)
end with
next
next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.02.2009, 20:24   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
n = 5
for r = 1 to 10
for i = to n-1
Игорь, а n, что это?
for i = to n-1 то же ?????
Зачем n-1 ???

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

попробуйте так:
sheets(лист3).range("G1:G10")=["=Лист1!A1:A10+Лист1!A16:A25+Лист1! A31:A40"]
slan вне форума Ответить с цитированием
Старый 26.02.2009, 02:52   #5
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
попробуйте так:
sheets(лист3).range("G1:G10")=["=Лист1!A1:A10+Лист1!A16:A25+Лист1! A31:A40"]
slan!
Это че? Как ты мыслишь это применить?
Мне макрос нужен, c формулой нет проблем!!
Код:
For Li = 1 To 13 ' Листы
For idt = 3 To 40 ' Строки
With ActiveCell
Cells(idt, 1 + Li).Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((MOD(ROW(" & Sheets(Li).Name & "!RC4:R[1530]C4)-" & idt & ",51)=0)*(" & Sheets(Li).Name & "!RC4:R[1530]C4))"
        .Value = .Value
      End With
    Next
 Next
Де спецы подевались или опять я тему не понятную "зарядил"??
valerij вне форума Ответить с цитированием
Старый 26.02.2009, 05:47   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Я бы сделал так:
Код:
Sub Main()
    Dim i As Long
    Sheets("Лист3").[G1:G10].ClearContents
    With Sheets("Лист1")
        For i = 1 To 31 Step 15
            .Range(.Cells(i, "A"), .Cells(i + 9, "A")).Copy
            Sheets("Лист3").[G1].PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
        Next
    End With
End Sub
Естественно, подставьте требуемую границу цикла.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 26.02.2009, 10:57   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Я бы сделал так.
Сергей!!
Как всегда, Супер
Спасибо!
valerij вне форума Ответить с цитированием
Старый 26.02.2009, 12:06   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
а n, что это?
а n - это я не знаю где заканчивается вот это
Цитата:
A1:A10 + A16:A25 + A31:A40 + ..... + Ax:Ay
сколько диапазонов высотой в 10 ячеек обрабатывается. вот сколько диапазонов, столько и n. да, еще - активным должен быть лист3
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 26.02.2009 в 12:08.
IgorGO вне форума Ответить с цитированием
Старый 26.02.2009, 20:38   #9
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от valerij Посмотреть сообщение
slan!
Это че? Как ты мыслишь это применить?
Мне макрос нужен, c формулой нет проблем!!

а вы попробовали?

а так? :

Код:
Names.Add "a", "=Лист1!$A$1:$A$10+Лист1!$A$16:$A$25+Лист1!$A$31:$A$40"
Sheets("лист3").Range("G1:G10") = [a]

Последний раз редактировалось slan; 27.02.2009 в 14:31.
slan вне форума Ответить с цитированием
Старый 26.02.2009, 22:03   #10
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
а так? :
Names.Add "a", "=Лист1!$A$1:$A$10+Лист1!$A$16:$A$2 5+Лист1!$A$31:$A$40"
Sheets("лист3").Range("G1:G10") = [a]
slan!
Я даже не знаю, куда это вставлять в модуль или в строку формул?
Если так:
Код:
Sub Макрос1()
Names.Add "a", "=Лист1!$A$1:$A$10+Лист1!$A$16:$A$25+Лист1!$A$31:$ A$40"
Sheets("лист3").Range("G1:G10") = [a]
End Sub
То ошибка
Код:
Run-time error '1004'
Введенная формула содержит ошибки. Выполните одно из следующих действий.
• Проверьте правильность расстановки скобок и использования аргументов.
• Чтобы получить справку по использованию функции, выберите команду "Функция" (меню "Вставка").
Если в строку формул, то как???

IgorGO
А за цикл for i = to n-1?
Чему равно начало цикла?
Зачем n-1?
valerij вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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