自动将每日更新的数据透视表数据添加到表

时间:2017-03-22 11:19:13

标签: excel vba excel-vba

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

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

在标准表格中,日期列包含“今天”日期,总计从数据透视表中获取数据。这一桌每天应该增加一行。

enter image description here

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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您的案例似乎是在Excel中应用更广泛的想法 - 达到信息块的最底层。有几种不同的方法(总结为here),每种方法各有利弊。

对你的案件来说最简单的那个可能是.End。我不知道您的工作表的确切结构,但类似于以下

Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version')

将复制你桌子A列倒数第二行的单元格(就在" TOTAL&#34之前; - 如果你有小计,使它成为-2,或其他什么)。

然后,要复制到标准表,请执行类似

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

其中" F"是表格的第二列(或者您想要粘贴它的任何地方)。

答案 1 :(得分:0)

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

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