VBA - Как использовать VLookup для получения итогов из динамической изменяющейся сводной таблицы - PullRequest
0 голосов
/ 08 ноября 2018

Я довольно новичок в использовании VBA с Vlookups для сводных таблиц, поэтому любая помощь приветствуется здесь. У меня есть набор номеров и имен учетных записей в строке на моем первом листе, которые мне нужны для получения итоговых сумм, которые у меня есть в сводной таблице на отдельном листе.

Например:

Мой первый лист "Итоги MOM YTD" содержит следующее содержание в ячейках A11: A600 (пример короче, но иногда этот список будет больше 600)

4-50000 Прочее Разное

4-50001 Национальный

4-50002 Media

4-50003 Спонсоры

и так далее ...

Я хотел бы заполнить содержимое в B11: B600 итоговыми суммами, которые соответствуют этим номерам и именам счетов, однако сводная таблица имеет разный размер, и я не знаю, сколько столбцов будет в каждом месяце.

На втором листе "NW_pivot" есть сводная таблица, которую я создал, начиная с ячейки Q6 (столбец Q с учетной записью для поиска), а общий итог (последний столбец в сводной таблице) - это сумма, которую я хочу вывести в первый листы столбца Б.

Example pivot table

и так далее ...

Есть ли у кого-нибудь советы о том, как это сделать проще всего? Я пробовал много вариантов с приведенным ниже кодом, но думаю, что я здесь совсем недавно, и нужно использовать vlookup, но я не знаю, как даже начать с одного в сводной таблице, поэтому я извиняюсь.

Sub MatchAccountTotals ()

dim i As Long
dim j As Long
dim lastrow1 As Long
dim lastrow2 As Long
dim lastcol1 As Long
dim accountName As String

lastrow1=sheets("MOM YTD Totals").range("A" & Rows.Count).end(xlUp).row

For i=11 to lastrow1    
    accountName=sheets("MOM YTD Totals - All Entities").cells(i, "A").value


 Sheets("NW_Pivot").Activate
 lastrow2=Sheets("NW_Pivot").range("Q" & Rows.Count).end(xlUp).row
 lastcol1=Sheets("NW_Pivot").Cells(6,columns.count).End(xlToLeft).Column


For j=6 To lastrow2

if sheets("NW_Pivot").cells(j,"Q").value=accountName

    sheets("NW_Pivot").cells(j,"lastcol")).copy

    sheets("MOM YTD Totals").activate

    sheets("MOM YTD Totals").cells(i,"D").select

    activesheet.paste

End If

   Next j
   application.CutCopyMode=False
   Next i

sheets("MOM YTD Totals").Activate
sheets("MOM YTD Totals").range("A1").select

End Sub

Любые советы приветствуются, спасибо!

...