【问题标题】:VBA pivot table data source errorVBA数据透视表数据源错误
【发布时间】:2018-11-06 18:25:46
【问题描述】:

大家早上好!

我搜索了这个论坛,但没有找到 VBA 和数据透视表问题的答案。

我尝试做的很简单。我有一个包含两张工作表的工作簿,一张包含数据,另一张数据透视表基于第一张工作表中的数据。我想复制这两张表(这里没问题),然后将新数据透视表的数据源从旧数据表移动到新数据表。 当我运行下面的代码时,我得到一个错误 5。关于如何解决这个问题的任何想法? 非常感谢:)

Sub nouvelle_periode()
   'Crée un nouveau planning vierge fonctionnel à partir des feuilles types

   'Copie les tableau et analyse
   ActiveWorkbook.Worksheets("Période type").Copy After:=Sheets(Sheets.Count)
   ActiveSheet.Name = "nouvelle-periode"
   ActiveWorkbook.Worksheets("Analyse type").Copy After:=Sheets(Sheets.Count)
   ActiveSheet.Name = "nouvelle-analyse"

   'Associer la bonne période comme référence pour les tableaux croisés 
   dynamiques de la feuille d'analyse
   Dim wb As Workbook
   Dim ws As Worksheet
   Dim pt As PivotTable
   Dim datarange As Range

   donnees = Worksheets("nouvelle-periode").Range("F10:M500")

   Worksheets("nouvelle-analyse").Activate
   Set wb = ActiveWorkbook
   Set ws = ActiveSheet

   For Each pt In ws.PivotTables
       pt.ChangePivotCache _
           wb.PivotCaches.Create(SourceType:=xlDatabase, _
               SourceData:=donnees)
   Next pt

End Sub

【问题讨论】:

标签: vba excel pivot-table


【解决方案1】:

donnees 是一个范围对象,对象被分配了单词Set。声明对象也是一个好习惯,例如Dim donnees As Range 分配之前的某个地方。

Set donnees = Worksheets("nouvelle-periode").Range("F10:M500")

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2016-04-12
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多