VBA数据透视表数据源错误

时间:2018-05-28 07:57:57

标签: excel vba excel-vba pivot-table

大家早上好!

我已经通过这个论坛进行了搜索,但没有找到我对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

1 个答案:

答案 0 :(得分:0)

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

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