Всем привет.
Записываю макрос создания сводной:
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 16.11.2011 (Serge 007)
'
'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Лист1!R1C1:R2C2").CreatePivotTable TableDestination:="", TableName:= _
"СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
End Sub
Что не нравится? То что диапазон задаётся абсолютный "Лист1!R1C1:R2C2", но в следующий раз диапазон будет другим. Да и лист может по другому называться. Как сделать, что бы макрос сам определял кол-во заполненных строк и столбцов АКТИВНОГО листа и использовал их при создании сводной?
Кроме того, сводная, по умолчанию, создаётся с названием "СводнаяТаблица1", но если сводная с таким названием уже есть в этом файле, то макрос выдаст ошибку. Как этого избежать?
ЗЫ На самом деле важен только первый пункт, второй - это исключение из правил :)
Записываю макрос создания сводной:
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 16.11.2011 (Serge 007)
'
'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Лист1!R1C1:R2C2").CreatePivotTable TableDestination:="", TableName:= _
"СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
End Sub
Что не нравится? То что диапазон задаётся абсолютный "Лист1!R1C1:R2C2", но в следующий раз диапазон будет другим. Да и лист может по другому называться. Как сделать, что бы макрос сам определял кол-во заполненных строк и столбцов АКТИВНОГО листа и использовал их при создании сводной?
Кроме того, сводная, по умолчанию, создаётся с названием "СводнаяТаблица1", но если сводная с таким названием уже есть в этом файле, то макрос выдаст ошибку. Как этого избежать?
ЗЫ На самом деле важен только первый пункт, второй - это исключение из правил :)