Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)

Модерирует : ShIvADeSt

ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Не забудьте проставить Ваши строчки и столбы в секциях, где задаётся исходная и итоговая таблица!
 

Код:
 
Sub ScanAndSumComments()
  Dim pComments As New Scripting.Dictionary
  Dim i, iRow, RowFirst, rowLast, RowItogFirst As Long
  Dim vEntry As String
  Dim ColComment, ColQ, ColItogComment, ColItogQ  As String
     
' ---------------- Исходная таблица ----------------
ColComment = "A" ' исходный столбец, в котором комментарии
ColQ = "B" ' исходный столбец, в котором числа
RowFirst = 6 ' строчка, где начинаются комментарии (первая строка исходной таблицы)
 
rowLast = 13 ' строчка, где заканчиваются комментарии (последняя строка исходной таблицы)
' в принципе последнюю строчку легко определять автоматически -
'    но в постановке задачи такого не было
 
' ---------------- итоговая таблица ----------------
ColItogComment = "F" ' итоговый столбец, куда результат - список комментариев
ColItogQ = "G" ' итоговый столбец, куда результат - сумма
RowItogFirst = 2 ' строчка, куда начинать писать итоги
 
     
For iRow = RowFirst To rowLast
  vEntry = CStr(Cells(iRow, ColComment).Value)
  If Not pComments.Exists(vEntry) Then
     pComments.Add vEntry, Cells(iRow, ColQ).Value
  Else
     ' TempSum = pComments.Item(vEntry)
     pComments.Item(vEntry) = pComments.Item(vEntry) + CDbl(Cells(iRow, ColQ).Value)
  End If
Next iRow
 
For i = 0 To pComments.Count - 1
  Cells(i + RowItogFirst, ColItogComment).Value = pComments.Keys(i)
  Cells(i + RowItogFirst, ColItogQ).Value = pComments.Items(i)
Next i
 
     
End Sub
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 12:44 17-08-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)
ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru