VBA数据透视表数据源错误。

3
大家早上好!
我在这个论坛上搜索了一下,但没有找到关于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

http://www.contextures.com/excelpivottabledatasource.html - FloLie
添加 set donnees=Worksheets("nouvelle-periode").Range("F10:M500"),现在它将正常工作。 - Aravindhan R
1个回答

1

donnees是一个范围对象,使用单词Set进行分配。最好在分配之前声明对象,例如在某个地方声明Dim donnees As Range

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接