Определение диапазона заполненного данными
Serge_007
Дата: Среда, 16.11.2011, 23:07 |
Сообщение № 1
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Всем привет. Записываю макрос создания сводной: [vba]Код
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
[/vba] Что не нравится? То что диапазон задаётся абсолютный "Лист1!R1C1:R2C2" , но в следующий раз диапазон будет другим. Да и лист может по другому называться. Как сделать, что бы макрос сам определял кол-во заполненных строк и столбцов АКТИВНОГО листа и использовал их при создании сводной? Кроме того, сводная, по умолчанию, создаётся с названием "СводнаяТаблица1" , но если сводная с таким названием уже есть в этом файле, то макрос выдаст ошибку. Как этого избежать? ЗЫ На самом деле важен только первый пункт, второй - это исключение из правил
Всем привет. Записываю макрос создания сводной: [vba]Код
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
[/vba] Что не нравится? То что диапазон задаётся абсолютный "Лист1!R1C1:R2C2" , но в следующий раз диапазон будет другим. Да и лист может по другому называться. Как сделать, что бы макрос сам определял кол-во заполненных строк и столбцов АКТИВНОГО листа и использовал их при создании сводной? Кроме того, сводная, по умолчанию, создаётся с названием "СводнаяТаблица1" , но если сводная с таким названием уже есть в этом файле, то макрос выдаст ошибку. Как этого избежать? ЗЫ На самом деле важен только первый пункт, второй - это исключение из правил Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Всем привет. Записываю макрос создания сводной: [vba]Код
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
[/vba] Что не нравится? То что диапазон задаётся абсолютный "Лист1!R1C1:R2C2" , но в следующий раз диапазон будет другим. Да и лист может по другому называться. Как сделать, что бы макрос сам определял кол-во заполненных строк и столбцов АКТИВНОГО листа и использовал их при создании сводной? Кроме того, сводная, по умолчанию, создаётся с названием "СводнаяТаблица1" , но если сводная с таким названием уже есть в этом файле, то макрос выдаст ошибку. Как этого избежать? ЗЫ На самом деле важен только первый пункт, второй - это исключение из правил Автор - Serge_007 Дата добавления - 16.11.2011 в 23:07
RAN
Дата: Среда, 16.11.2011, 23:44 |
Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Попробуй вместо "Лист1!R1C1:R2C2"). вставить ActiveSheet.UsedRange или ActiveSheet.Cells(1, 1).CurrentRegion ps у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
Попробуй вместо "Лист1!R1C1:R2C2"). вставить ActiveSheet.UsedRange или ActiveSheet.Cells(1, 1).CurrentRegion ps у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Попробуй вместо "Лист1!R1C1:R2C2"). вставить ActiveSheet.UsedRange или ActiveSheet.Cells(1, 1).CurrentRegion ps у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches Автор - RAN Дата добавления - 16.11.2011 в 23:44
Serge_007
Дата: Среда, 16.11.2011, 23:50 |
Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Quote (RAN )
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
А у тебя какой Экс? Я в 2003 записывал.
Quote (RAN )
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
А у тебя какой Экс? Я в 2003 записывал.Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Quote (RAN )
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
А у тебя какой Экс? Я в 2003 записывал.Автор - Serge_007 Дата добавления - 16.11.2011 в 23:50
Serge_007
Дата: Среда, 16.11.2011, 23:53 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Quote (RAN )
Попробуй вместо "Лист1!R1C1:R2C2"). вставить ActiveSheet.UsedRange
Syntax Error Compile Error
Quote (RAN )
Попробуй вместо "Лист1!R1C1:R2C2"). вставить ActiveSheet.UsedRange
Syntax Error Compile ErrorSerge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Quote (RAN )
Попробуй вместо "Лист1!R1C1:R2C2"). вставить ActiveSheet.UsedRange
Syntax Error Compile ErrorАвтор - Serge_007 Дата добавления - 16.11.2011 в 23:53
RAN
Дата: Четверг, 17.11.2011, 00:03 |
Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
2007
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение 2007 Автор - RAN Дата добавления - 17.11.2011 в 00:03
VictorM
Дата: Четверг, 17.11.2011, 00:14 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация:
27
±
Замечаний:
0% ±
У меня (2003) ActiveSheet.Cells(1, 1).CurrentRegion сработало Code
Sub Макрос1() ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ ActiveSheet.Cells(1, 1).CurrentRegion).CreatePivotTable TableDestination:="", TableName:= _ "СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select End Sub
У меня (2003) ActiveSheet.Cells(1, 1).CurrentRegion сработало Code
Sub Макрос1() ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ ActiveSheet.Cells(1, 1).CurrentRegion).CreatePivotTable TableDestination:="", TableName:= _ "СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select End Sub
VictorM
Сообщение отредактировал VictorM - Четверг, 17.11.2011, 00:17
Ответить
Сообщение У меня (2003) ActiveSheet.Cells(1, 1).CurrentRegion сработало Code
Sub Макрос1() ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ ActiveSheet.Cells(1, 1).CurrentRegion).CreatePivotTable TableDestination:="", TableName:= _ "СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select End Sub
Автор - VictorM Дата добавления - 17.11.2011 в 00:14
RAN
Дата: Четверг, 17.11.2011, 00:15 |
Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Серж, попробуй так Code
ActiveSheet.UsedRange.Address(0, 0, 0, 1)
Серж, попробуй так Code
ActiveSheet.UsedRange.Address(0, 0, 0, 1)
RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Серж, попробуй так Code
ActiveSheet.UsedRange.Address(0, 0, 0, 1)
Автор - RAN Дата добавления - 17.11.2011 в 00:15
Саня
Дата: Четверг, 17.11.2011, 00:48 |
Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация:
560
±
Замечаний:
0% ±
XL 2016
Quote (RAN )
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
нет такого метода больше
Quote (RAN )
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
нет такого метода большеСаня
Ответить
Сообщение Quote (RAN )
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches
нет такого метода большеАвтор - Саня Дата добавления - 17.11.2011 в 00:48
Serge_007
Дата: Четверг, 17.11.2011, 10:42 |
Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Quote (Саня )
нет такого метода больше
Записал в 2010: Code
Sub Макрос2() ' ' Макрос2 Макрос ' ' ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Лист1!R1C1:R6C3", Version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="", TableName:="СводнаяТаблица1", DefaultVersion:= _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select End Sub
Quote (Саня )
нет такого метода больше
Записал в 2010: Code
Sub Макрос2() ' ' Макрос2 Макрос ' ' ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Лист1!R1C1:R6C3", Version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="", TableName:="СводнаяТаблица1", DefaultVersion:= _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select End Sub
Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Quote (Саня )
нет такого метода больше
Записал в 2010: Code
Sub Макрос2() ' ' Макрос2 Макрос ' ' ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Лист1!R1C1:R6C3", Version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="", TableName:="СводнаяТаблица1", DefaultVersion:= _ xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select End Sub
Автор - Serge_007 Дата добавления - 17.11.2011 в 10:42
Serge_007
Дата: Четверг, 17.11.2011, 11:02 |
Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Quote (_Boroda_ )
А если так
Прикольно, но сводная не создаётся на новом листе
Quote (_Boroda_ )
А если так
Прикольно, но сводная не создаётся на новом листе Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Quote (_Boroda_ )
А если так
Прикольно, но сводная не создаётся на новом листе Автор - Serge_007 Дата добавления - 17.11.2011 в 11:02
_Boroda_
Дата: Четверг, 17.11.2011, 11:14 |
Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация:
6503
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Цитата Serge_007 ( )
кольно, но сводная не создаётся на новом листе
Я думал, что ты хочешь сводную ПОД таблицей с данными. На новом листе еще проще [vba]Код
Sub tt() On Error Resume Next n_ = Format(Now, "YYYY_MM_DD__hh_mm_ss") ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ Selection.CurrentRegion, TableName:="Св_Таб_" & n_ On Error GoTo 0 End Sub
[/vba]
Цитата Serge_007 ( )
кольно, но сводная не создаётся на новом листе
Я думал, что ты хочешь сводную ПОД таблицей с данными. На новом листе еще проще [vba]Код
Sub tt() On Error Resume Next n_ = Format(Now, "YYYY_MM_DD__hh_mm_ss") ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ Selection.CurrentRegion, TableName:="Св_Таб_" & n_ On Error GoTo 0 End Sub
[/vba]_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Цитата Serge_007 ( )
кольно, но сводная не создаётся на новом листе
Я думал, что ты хочешь сводную ПОД таблицей с данными. На новом листе еще проще [vba]Код
Sub tt() On Error Resume Next n_ = Format(Now, "YYYY_MM_DD__hh_mm_ss") ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ Selection.CurrentRegion, TableName:="Св_Таб_" & n_ On Error GoTo 0 End Sub
[/vba]Автор - _Boroda_ Дата добавления - 17.11.2011 в 11:14
Serge_007
Дата: Четверг, 17.11.2011, 11:20 |
Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Quote (_Boroda_ )
На новом листе еще проще
Спасибо! Буде тестить, но по-моему это оно
Quote (_Boroda_ )
На новом листе еще проще
Спасибо! Буде тестить, но по-моему это оно Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Quote (_Boroda_ )
На новом листе еще проще
Спасибо! Буде тестить, но по-моему это оно Автор - Serge_007 Дата добавления - 17.11.2011 в 11:20