首页 > 解决方案 > VBA - 如何使用 VLookup 从动态变化的数据透视表中检索总计

问题描述

我对在数据透视表上使用 VBA 和 Vlookups 非常陌生,因此在这里感谢任何帮助。我的第一张工作表中有一组帐号和名称的字符串,我需要检索我在单独工作表中的数据透视表中的总计。

例如:

我的第一张表“MOM YTD Totals”在单元格 A11:A600 中有以下内容(示例较短,但有时此列表会超过 600)

4-50000 其他杂项

4-50001全国

4-50002媒体

4-50003 赞助商

等等...

我想在 B11:B600 中填写与这些帐号和名称匹配的总金额,但是数据透视表的大小范围很广,我不知道每个月会有多少列。

第二张表“NW_pivot”具有我从单元格 Q6 开始创建的数据透视表(带有要查找的帐户的 Q 列),总计(数据透视表中的最后一列)是我想要拉入第一张表 B 列的金额.

示例数据透视表

等等...

有没有人对最简单的方法有任何提示?我已经用下面的代码尝试了很多变体,但我认为我离这里很远,应该使用 vlookup,但我什至不知道如何从数据透视表中的一个开始,所以我很抱歉。

子 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

结束子

非常欢迎任何提示,谢谢!

标签: excelvbapivotvlookup

解决方案


推荐阅读