Страницы: 1
RSS
Макрос создания сводной таблицы не понимает название листа
 
Добрый день уважаемые форумчане.

Написал макрос, который создает сводную таблицу на основе диапазона с динамически изменяющимся кол-вом строк:
Код
Sub IO()
finalRow = Cells(Rows.Count, 2).End(xlUp).Row
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "HRST!R5C2:R" & finalRow & "C15", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="HRST!R5C18", TableName:="Сводная2", _
        DefaultVersion:=xlPivotTableVersion12
End Sub

Но вот проблема - название листа с иточником данных состоит из двух слов и разделено пробелом (без использования символа нижнее подчеркивание) и когда я использую в коде название листа HR ST, то макрос выдает ошибку Run Time error 5 Invalid procedure or argument

Но как только название листа переименуешь на HRST и внесешь соответствующие изменения в код, то макрос работает как часы и не выдает ошибку.

Хотелось бы узнать, можно ли как-то обойти данную ошибку без переименования листа HR ST в HRST, т.к. в книге есть множество других макросов, которые работают именно с названием HR ST и переделывать их все очень не хотелось бы.
 
pinguindell, создайте на другом листе формулу, которая ссылается на любую ячейку этого листа - увидите, как нужно изменить имя листа для использования ссылок вида "Лист!ячейка".
 
Казанский,спасибо !!! Сначала въехать не мог, что нужно сделать, потом все таки дошло, на тот случай если кто-то тоже столкнется с такой "проблемой", к названию листа нужно добавить апострофы, в результате макрос работает как нужно:
Код
Sub IO()
finalRow = Cells(Rows.Count, 2).End(xlUp).Row
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "'HR ST'!R5C2:R" & finalRow & "C15", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="'HR ST'!R5C18", TableName:="Сводная 2", _
        DefaultVersion:=xlPivotTableVersion12
End Sub
Изменено: pinguindell - 08.11.2015 13:26:33
Страницы: 1
Наверх