Leo
Дата: Вторник, 25.01.2011, 16:44 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация:
0
±
Замечаний:
0% ±
http://www.excelworld.ru/forum/3-87-1 [vba]Код
Sub CreatePT() Dim Pt As PivotTable Dim strField As String strField = Selection.Cells(1, 1).Text Range(Selection, Selection.End(xlDown)).Name = "Items" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ SourceData:="=Items").CreatePivotTable TableDestination:="", _ TableName:="ItemList" Set Pt = ActiveSheet.PivotTables("ItemList") ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1) Pt.AddFields RowFields:=strField Pt.PivotFields(strField).Orientation = xlDataField End Sub
[/vba] Перед запуском необходимо выделить заголовок исходных данных. Прекрасный код Но есть вопрос. Можно ли сделать, чтобы можно было выставить автоматически критерии по одному столбцу (поставить столбец в поле строк), например столбец A:A, а значения взять по другому столбцу(например, столбец B: ?
http://www.excelworld.ru/forum/3-87-1 [vba]Код
Sub CreatePT() Dim Pt As PivotTable Dim strField As String strField = Selection.Cells(1, 1).Text Range(Selection, Selection.End(xlDown)).Name = "Items" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ SourceData:="=Items").CreatePivotTable TableDestination:="", _ TableName:="ItemList" Set Pt = ActiveSheet.PivotTables("ItemList") ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1) Pt.AddFields RowFields:=strField Pt.PivotFields(strField).Orientation = xlDataField End Sub
[/vba] Перед запуском необходимо выделить заголовок исходных данных. Прекрасный код Но есть вопрос. Можно ли сделать, чтобы можно было выставить автоматически критерии по одному столбцу (поставить столбец в поле строк), например столбец A:A, а значения взять по другому столбцу(например, столбец B: ?Leo
Леонид
Ответить
Сообщение http://www.excelworld.ru/forum/3-87-1 [vba]Код
Sub CreatePT() Dim Pt As PivotTable Dim strField As String strField = Selection.Cells(1, 1).Text Range(Selection, Selection.End(xlDown)).Name = "Items" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ SourceData:="=Items").CreatePivotTable TableDestination:="", _ TableName:="ItemList" Set Pt = ActiveSheet.PivotTables("ItemList") ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1) Pt.AddFields RowFields:=strField Pt.PivotFields(strField).Orientation = xlDataField End Sub
[/vba] Перед запуском необходимо выделить заголовок исходных данных. Прекрасный код Но есть вопрос. Можно ли сделать, чтобы можно было выставить автоматически критерии по одному столбцу (поставить столбец в поле строк), например столбец A:A, а значения взять по другому столбцу(например, столбец B: ?Автор - Leo Дата добавления - 25.01.2011 в 16:44
_Boroda_
Дата: Вторник, 25.01.2011, 17:31 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация:
6503
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Вроде так работает [vba]Код
Sub CreatePT() Dim Pt As PivotTable Dim strField As String s_ = 1 'Номер того столбца в выделенном, который пойдет в строки z_ = 3 'Номер того столбца в выделенном, который пойдет в значения Str_ = Selection.Cells(1, s_).Value Zn_ = Selection.Cells(1, z_).Value strField = Selection.Cells(1, 1).Text Range(Selection, Selection.End(xlDown)).Name = "Items" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ SourceData:="=Items").CreatePivotTable TableDestination:="", _ TableName:="ItemList" Set Pt = ActiveSheet.PivotTables("ItemList") ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1) Pt.PivotFields(Str_).Orientation = xlRowField Pt.AddDataField ActiveSheet.PivotTables( _ "ItemList").PivotFields(Zn_), "Сумма по полю " & Zn_, xlSum End Sub
[/vba]
Вроде так работает [vba]Код
Sub CreatePT() Dim Pt As PivotTable Dim strField As String s_ = 1 'Номер того столбца в выделенном, который пойдет в строки z_ = 3 'Номер того столбца в выделенном, который пойдет в значения Str_ = Selection.Cells(1, s_).Value Zn_ = Selection.Cells(1, z_).Value strField = Selection.Cells(1, 1).Text Range(Selection, Selection.End(xlDown)).Name = "Items" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ SourceData:="=Items").CreatePivotTable TableDestination:="", _ TableName:="ItemList" Set Pt = ActiveSheet.PivotTables("ItemList") ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1) Pt.PivotFields(Str_).Orientation = xlRowField Pt.AddDataField ActiveSheet.PivotTables( _ "ItemList").PivotFields(Zn_), "Сумма по полю " & Zn_, xlSum End Sub
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Вроде так работает [vba]Код
Sub CreatePT() Dim Pt As PivotTable Dim strField As String s_ = 1 'Номер того столбца в выделенном, который пойдет в строки z_ = 3 'Номер того столбца в выделенном, который пойдет в значения Str_ = Selection.Cells(1, s_).Value Zn_ = Selection.Cells(1, z_).Value strField = Selection.Cells(1, 1).Text Range(Selection, Selection.End(xlDown)).Name = "Items" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ SourceData:="=Items").CreatePivotTable TableDestination:="", _ TableName:="ItemList" Set Pt = ActiveSheet.PivotTables("ItemList") ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1) Pt.PivotFields(Str_).Orientation = xlRowField Pt.AddDataField ActiveSheet.PivotTables( _ "ItemList").PivotFields(Zn_), "Сумма по полю " & Zn_, xlSum End Sub
[/vba] Автор - _Boroda_ Дата добавления - 25.01.2011 в 17:31
Leo
Дата: Вторник, 25.01.2011, 17:52 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация:
0
±
Замечаний:
0% ±
Спасибо ;)))))))))))))))))))))))))))
Спасибо ;))))))))))))))))))))))))))) Leo
Леонид
Ответить
Сообщение Спасибо ;))))))))))))))))))))))))))) Автор - Leo Дата добавления - 25.01.2011 в 17:52