Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Определение диапазона заполненного данными - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Определение диапазона заполненного данными
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", но если сводная с таким названием уже есть в этом файле, то макрос выдаст ошибку. Как этого избежать?

ЗЫ На самом деле важен только первый пункт, второй - это исключение из правил


Ю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
Репутация: 1163 ±
Замечаний: 0% ±

2010
Попробуй вместо "Лист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
Дата добавления - 16.11.2011 в 23:44
Serge_007 Дата: Среда, 16.11.2011, 23:50 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (RAN)
у меня твой макрос вообще не идет, ругается на метод Add объекта PivotCaches

А у тебя какой Экс?
Я в 2003 записывал.


Ю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


Ю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
Репутация: 1163 ±
Замечаний: 0% ±

2010
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


Сообщение отредактировал 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
Репутация: 1163 ±
Замечаний: 0% ±

2010
Серж, попробуй так
Code
ActiveSheet.UsedRange.Address(0, 0, 0, 1)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСерж, попробуй так
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

нет такого метода больше
К сообщению приложен файл: 7385989.jpg (29.4 Kb)
 
Ответить
Сообщение
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


Ю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_)
А если так

Прикольно, но сводная не создаётся на новом листе sad


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (_Boroda_)
А если так

Прикольно, но сводная не создаётся на новом листе sad

Автор - 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]
К сообщению приложен файл: Cv_tab_1.xls (35.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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_)
На новом листе еще проще

Спасибо!
Буде тестить, но по-моему это оно smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (_Boroda_)
На новом листе еще проще

Спасибо!
Буде тестить, но по-моему это оно smile

Автор - Serge_007
Дата добавления - 17.11.2011 в 11:20
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!