【问题标题】:Automate adding daily-updated PivotTable data to a new cell in a table自动将每日更新的数据透视表数据添加到表中的新单元格
【发布时间】:2017-03-22 11:19:12
【问题描述】:

我正在尝试按照 Velin Georgiev 的 tutorial 自动生成 Excel 报告。

这是一份每日报告,我有一个表格,我将每天更新的数据透视表中的总值添加到一个新单元格中(数据透视表和标准表都在同一个工作表上)。

在标准表中,Date 列包含“今天”日期,Total 从数据透视表中获取数据。该表每天都应该增加一行。

到目前为止,它是手动完成的。是否有可能使用 VBA 以及如何做到这一点?

任何帮助将不胜感激。

【问题讨论】:

  • 另一个数据透视表可以按日期汇总吗?

标签: vba excel


【解决方案1】:

您的案例似乎是在 excel 中应用更广泛的想法 - 深入到信息块的底部。有几种不同的方法(总结为here),每种方法各有优缺点。

对您的情况最简单的可能是 .End。我不知道您的工作表的确切结构,但类似于以下内容

Range("A" & Cells(Rows.Count, "A").End(xlUp).Row - 1).Copy

将复制表格 A 列倒数第二行的单元格(就在“TOTAL”之前 - 如果您有小计,请将其设为 -2 或其他)。

然后,要复制到您的标准表,请执行以下操作

 Range("F" & Cells(Rows.Count, "F").End(xlUp).Row + 1).PasteSpecial xlPasteValues

其中“F”是表格的第二列(或您要粘贴的任何位置)。

【讨论】:

    【解决方案2】:

    这就是我解决问题的方法(非常感谢在互联网上发布类似问题和解决方案的人):

    Sub VlookupFunction()
    
       Dim S_Name As String
       Dim Lookup_Range As Range  
       Dim S_Value As Single
    
       Dim c As Long 'column
       Dim r As Long 'row
    
       S_Name = "OpenState"
       Set Lookup_Range = Range("A1:B10")
    
       S_Value = Application.WorksheetFunction.VLookup(S_Name, Lookup_Range, 2, False)
    
    With Sheet1
    
      r = .Columns(3).Find(what:="", after:=.Cells(14, 3)).Row
        .Cells(r, 3) = Date 'today 
    
      r = .Columns(4).Find(what:="", after:=.Cells(14, 4)).Row
        .Cells(r, 4) = S_Value
    
    End With
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 2015-08-12
      相关资源
      最近更新 更多