Ошибка источника данных сводной таблицы VBA - PullRequest
0 голосов
/ 28 мая 2018

Доброе утро всем!

Я искал этот форум, но не нашел ответа на мою проблему с 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 голосов
/ 28 мая 2018

donnees - объект диапазона, и объектам присваивается слово Set.Хорошей практикой также является объявление объекта, например, Dim donnees As Range где-то перед его назначением.

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

...