Просьба помочь, необходимо чтобы значения из одного диапазона прибавлялись к другому. Сделать надо с помощью макроса. [vba]
Код
Sub ЗаносимДанные()
Dim oCell As Range Dim oRng As Range Dim SumR As Range Dim SumB As Range
Set oRng = Range([C8], Cells(8, Columns.Count).End(xlToLeft)) Set oCell = oRng.Find([AA2], , , xlWhole) Set SumR = Range(oCell.Offset(1, 0), oCell.Offset(70, 0)) Set SumB = Range([B9], [B78])
SumR = WorksheetFunction.Sum(SumR, SumB) SumR.Value = SumR.Value+SumB.Value End Sub
[/vba] Блуждания по интернету и форуму привели к: 1) SumR.Value = SumR.Value+SumB.Value - этот вариант вообще не дал результат. 2) SumR = WorksheetFunction.Sum(SumR, SumB) - пробовал так, суммирует данные диапазонов не по ячейкам, а в кучу...
Наверняка надо с помощью цикла, но я не знаю как лучше...
Добрый вечер форумчане!
Просьба помочь, необходимо чтобы значения из одного диапазона прибавлялись к другому. Сделать надо с помощью макроса. [vba]
Код
Sub ЗаносимДанные()
Dim oCell As Range Dim oRng As Range Dim SumR As Range Dim SumB As Range
Set oRng = Range([C8], Cells(8, Columns.Count).End(xlToLeft)) Set oCell = oRng.Find([AA2], , , xlWhole) Set SumR = Range(oCell.Offset(1, 0), oCell.Offset(70, 0)) Set SumB = Range([B9], [B78])
SumR = WorksheetFunction.Sum(SumR, SumB) SumR.Value = SumR.Value+SumB.Value End Sub
[/vba] Блуждания по интернету и форуму привели к: 1) SumR.Value = SumR.Value+SumB.Value - этот вариант вообще не дал результат. 2) SumR = WorksheetFunction.Sum(SumR, SumB) - пробовал так, суммирует данные диапазонов не по ячейкам, а в кучу...
Наверняка надо с помощью цикла, но я не знаю как лучше...Railord
Там, наверное, надо сложить данные по дате с данными итога, причем прямо в итоге. Зачем это делать макросами - непонятно, но раз так ТС желает...
Думаю, более правильным кодом был бы такой: [vba]
Код
Set oRng = Range([C8], [e8].End(xlToRight)) Set oCell = Cells(8, [=MATCH(AA2,OFFSET(8:8,,),)]) Set SumR = oCell.Offset(1).Resize(70) Set SumB = [b9].Resize(SumR.Rows.Count)
Dim c As Range Set c = ActiveCell SumR.Copy SumB.PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd Application.CutCopyMode = False c.Activate
[/vba]Это так, прямо на коленке Если бы ТС объяснил, как именно поставлена задача - думаю, код был бы совершенно другим...
А, да, в коде же определенно не хватает: [vba]
Код
If oCell Is Nothing Then MsgBox "Немає такої букви в цьому слові !": exit sub
[/vba]
Там, наверное, надо сложить данные по дате с данными итога, причем прямо в итоге. Зачем это делать макросами - непонятно, но раз так ТС желает...
Думаю, более правильным кодом был бы такой: [vba]
Код
Set oRng = Range([C8], [e8].End(xlToRight)) Set oCell = Cells(8, [=MATCH(AA2,OFFSET(8:8,,),)]) Set SumR = oCell.Offset(1).Resize(70) Set SumB = [b9].Resize(SumR.Rows.Count)
Dim c As Range Set c = ActiveCell SumR.Copy SumB.PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd Application.CutCopyMode = False c.Activate
[/vba]Это так, прямо на коленке Если бы ТС объяснил, как именно поставлена задача - думаю, код был бы совершенно другим...
А, да, в коде же определенно не хватает: [vba]
Код
If oCell Is Nothing Then MsgBox "Немає такої букви в цьому слові !": exit sub
Пополнение бывает несколько раз в день - реализовать это формулой наверное можно - но это лишние телодвижения в будущем на которых можно сэкономить макросом с кнопкой.... AndreTM - да вы все верно поняли вам отдельное спасибо - коды, которыми вы поделились со мной ранее, немного видоизменяя применил уже для решения многих несложных задач. Вот и здесь хотел провернуть нечто подобное - сопоставить и найти текущую дату в строке с датами получилось, но дальше со сложением возникли проблемы...
Дата определяется формулой сегодня... Данные с диапазона B9 и ниже - должны прибавляться к аналогичному по размеру диапазону - но уже в столбе с нужной датой. Так как данные могут вноситься несколько раз за день - то и просто копировать вставить не подходит... Нужно именно прибавлять. Как прибавить? Код от AndreTM, не прибавляет...
Все работает все прибавляет, я просто даже не ожидал, что все так просто... оказывается все происходит с помощью пастеспешел... - Это очень удобно! Спасибо большое!
Пополнение бывает несколько раз в день - реализовать это формулой наверное можно - но это лишние телодвижения в будущем на которых можно сэкономить макросом с кнопкой.... AndreTM - да вы все верно поняли вам отдельное спасибо - коды, которыми вы поделились со мной ранее, немного видоизменяя применил уже для решения многих несложных задач. Вот и здесь хотел провернуть нечто подобное - сопоставить и найти текущую дату в строке с датами получилось, но дальше со сложением возникли проблемы...
Дата определяется формулой сегодня... Данные с диапазона B9 и ниже - должны прибавляться к аналогичному по размеру диапазону - но уже в столбе с нужной датой. Так как данные могут вноситься несколько раз за день - то и просто копировать вставить не подходит... Нужно именно прибавлять. Как прибавить? Код от AndreTM, не прибавляет...
Все работает все прибавляет, я просто даже не ожидал, что все так просто... оказывается все происходит с помощью пастеспешел... - Это очень удобно! Спасибо большое!Railord
Nil novi sub luna, так что - век живи, век учись!)
Сообщение отредактировал Railord - Суббота, 11.10.2014, 23:54