Как исправить ShowDetail = True, который не раскрывает детали - PullRequest
1 голос
/ 04 апреля 2019

Следующий код работает хорошо в том смысле, что не возникает ошибок времени выполнения, а сводные таблицы создаются с правильными данными и размещаются в правильном месте.

Однако список предметов свернут.

Часть кода состоит из:

  • чтение заголовков столбцов из массива
  • идентифицирует заголовки столбцов, которые могут быть расположены случайным образом в диапазоне
  • для каждого столбца, построить одномерную (то есть отдельное поле) сводную таблицу
  • разместить сводную таблицу в данном месте
  • показать ВСЕ предметы + их количество

A) с использованием SHOWDETAIL = True

Б) запись макроса и «клонирование» кода

For Each headerCell In wSh.Range("Ctl_Headers")
    Set sceRange = wSh.Range(headerCell.Value)
    sceRange.Activate
    fRow = sceRange.Row
    lRow = sceRange.Cells.SpecialCells(xlCellTypeLastCell).Row
    fCol = sceRange.Column
    lCol = fCol - 1 + sceRange.Columns.Count

    Set pivCache = wBk.PivotCaches.Add(xlDatabase, wSh.Range(wSh.Cells(fRow, fCol), wSh.Cells(lRow, lCol)))

    Set pivTable = wSh.PivotTables.Add(PivotCache:=pivCache, TableDestination:=wSh.Range(wSh.Cells(1, nrindex), wSh.Cells(1, nrindex)), TableName:="piv" & headerCell.Value)

    pivTable.PivotFields(headerCell.Value).Orientation = xlRowField
    pivTable.AddDataField pivTable.PivotFields(headerCell.Value), "Count " & headerCell.Value, xlCount
    pivTable.PivotFields(headerCell.Value).ShowDetail = True

    nrindex = nrindex + 4
Next headerCell

1 Ответ

0 голосов
/ 25 апреля 2019

Вы используете pivTable.PivotFields(headerCell.Value) как RowField и счетчик DataField.
Вы должны изменить следующую строку кода, чтобы обратиться к полю строки.

До:

pivTable.PivotFields(headerCell.Value).ShowDetail = True

После того, как:

pivTable.RowFields(headerCell.Value).ShowDetail = True
...