Я записал создание сводной таблицы для произвольных данных, и кажется, что она работает нормально, если дан один набор данных.Однако, когда программе дается несколько столбцов данных, вывод неверен.Код для общей сводной таблицы приведен ниже.Она похожа на записанную сводную таблицу за исключением того, что имена и столбцы менее жестко запрограммированы
Dim tempString As String
tempString = ActiveWorkbook.Sheets(sheetName).Range(column & "1").Value
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
sheetName & "!R1C" & ColTextToInt(column) & ":R" & g_totalRow & "C" & ColTextToInt(column) & "", Version:=xlPivotTableVersion12 _
).CreatePivotTable TableDestination:=ActiveSheet.Range(colNamePos & "1"), _
TableName:=column & "Table", DefaultVersion:=xlPivotTableVersion12
ActiveCell(1, ColTextToInt(colNamePos)).Select
With ActiveSheet.PivotTables(column & "Table").PivotFields(tempString)
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.Range(colNamePos & "1").Select
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables(column & "Table").AddDataField ActiveSheet.PivotTables( _
column & "Table").PivotFields(tempString), "Count of " & tempString, xlCount
ActiveWorkbook.ShowPivotTableFieldList = False
Программа доходит до конца.Вот конкретная строка:
ActiveSheet.PivotTables(column & "Table").AddDataField ActiveSheet.PivotTables( _
column & "Table").PivotFields(tempString), "Count of " & tempString, xlCount
При попадании в эту строку кода столбец сводной таблицы (с конкретными именами ячеек) покрывается общим общим числом от общего числа строк.Ниже приведен ключ для обозначения переменных
sheetName = рабочий лист со всеми необработанными данными (например, "Sheet1") column = Пользователь указывает столбец, на который программа должна смотреть (например, F)") tempString = с учетом первых двух переменных это будет равно заголовку столбца (например," State ") g_totalRow = сколько строк в листе необработанных данных colNamePos = столбец, в который программа будет вводить сводную таблицу
Спасибо,
Джесси Смотермон