Хорошее mrng!Ошибка сводной таблицы при использовании с использованием VBA
Я пытаюсь создать сводную таблицу с помощью vba, и я очень новичок в pivot, используя vba, и я попытался исследовать в google как можно больше, чтобы исправить это, но не нашел много информации, которая может помочь мне исправить это, было бы очень полезно, если кто-нибудь сможет мне помочь в этом.
Диапазон - всегда начинается с A10, столбцы будут фиксированы до H, но количество строк не фиксировано, поэтому я попытался определить диапазон и использовать его в коде, но его бросая меня ниже сообщения об ошибке, пожалуйста, проверьте и исправьте меня
Проблемы, с которыми сталкиваются, - не могут определять Rng как Range и не могут использовать этот диапазон в сводной таблице.
Rng, как Range
время выполнения ошибки '91': переменная объекта или с черной дисперсией не установлена
Pivot кэш
Run Time ошибка '438': Объект не поддерживает это свойство или метод
данных
ACT Валюта CB LC Тип CB FC Тип SI 1001 с 2031 USD Dr 2031 Д-р 0005
1002 BHD 1194 Д 1194 Д 0105
1003 P EUR 326 Д 326 Д 0110
1004 AR GBP 60467 Д 60467 Д 0125
1005 А.П. ДМО (73080) Cr (73080) Кт 0190
Sub Pivot()
Dim ws As Worksheet
Dim pc As PivotCache
Dim pt As PivotTable
'Dim Rng As Range
'Defining Range
Rng = Range("A10").Select
Rng = Range(Selection, Selection.End(xlToRight)).Select
Rng = Range(Selection, Selection.End(xlDown)).Select
'Adding new worksheet
Set ws = Worksheets.Add
'Creating Pivot cache
Set pc = ActiveWorkbook.PivotCaches.Create(xlDatabase, "Working!Rng").Select
'Creating Pivot table
Set pt = pc.CreatePivotTable(ws.Range("B3"))
'Setting Fields
With pt
'set row field
With .PivotFields("SI")
.Orientation = xlRowField
.Position = 1
End With
'set column field
With .PivotFields("Currency")
.Orientation = xlColumnField
.Position = 1
End With
End With
End Sub
Спасибо за помощь!
С уважением Suresh7860
Ваш первый вопрос в том, что вы должны сказать «Set RNG = ...» – jcarroll
В дополнение к тому, что @jcarroll сказал, что вы можете удалить все '.Select' в конце, как так:' Set Rng = Диапазон ("A10") '. Кроме того, почему вы повторно назначаете 'rng' в течение трех последовательных строк? Наконец, для меня не имеет смысла, что вы сначала «создаете» новый PivotCache, а затем создаете сводную таблицу (без отношения к кешу). Кажется, что не существует источника данных для вашей сводной таблицы. Вы пробовали [записывать макрос] (https://www.youtube.com/watch?v=Q_HQGHPBYoo) и читать/понимать его? – Ralph
Привет @Ralph, я попытался использовать код, который я получил в Google, и попытался отредактировать его в соответствии с моим требованием, но не работал, и я впервые использовал vba для сводных таблиц, так что полностью потерял, что делать, поэтому задал вопросы, которые я при редактировании кода. – suresh7860