Sumifs с VBA - PullRequest
       57

Sumifs с VBA

0 голосов
/ 19 июня 2020

Я попытался использовать разные подпрограммы VBA для извлечения данных из таблицы [MasterRenamed] в таблицу [P&L], используя категорию и диапазоны дат.

Пока я работал первым, я не мог понять, как сделать его динамическим c (т.е. я мог делать только один элемент за раз). Я полностью потерпел неудачу со вторым по какой-то причине.

Я бы загрузил книгу, но, возможно, потому, что я новичок на форуме, мне пока не разрешено загружать документы (?). Я не использую какой-либо конкретный формат кода, пока он работает. Я, безусловно, был бы признателен за советы.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 21 июня 2020

Спасибо вам обоим за ваши ответы. Я смог понять это и считаю, что нашел довольно хорошее решение по сравнению с тем, что мне удалось найти в Интернете.

этот макрос использует список поиска в excel (col k) для поиска через набор данных (выписки из банка и кредитной карты) и возвращает объединенные итоги (например, встроенная функция консолидации Excel) в списке поиска столбца.

Sub Search_and_Consolidate_Sums ()

Dim ws1 As Worksheet

Set ws1 = Sheets ("MasterRenamedx")

ws1.Select

Dim lrow1 As Long, lrow2 As Long 'первая строка используется в диапазоне данных поиска, вторая строка для списка поиска.

lrow1 = Range ("B" & Rows.Count) .End (xlUp) .Row

lrow2 = Range ("K" & Rows.Count). End (xlUp) .Row

Dim rng1 As Range 'lookup list

Set rng1 = Range ("k1")

stDate = Range ("J1")' start & даты окончания

EndDate = Range ("j2")

Dim Dates as range, Categories as range, Deits as range, Credits as R ange 'Диапазон данных

Установить даты = Листы ("MasterRenamedx"). Диапазон ("B2: B" & lrow1)

Установить Категории = Листы ("MasterRenamedx"). Диапазон ("C2 : C "& lrow1)

Установить дебиты = Sheets (" MasterRenamedx "). Диапазон (" E2: E "& lrow1)

Для i = 2 To lrow2

mytotals = Application.WorksheetFunction.SumIfs (Debits, Dates, _

"> =" & stDate, Dates, "<=" & EndDate, Categories, Cells (i, 11)) </p>

Cells (i, 12) = mytotals

Next i

End Sub

...