powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / getpivotdata
15 сообщений из 15, страница 1 из 1
getpivotdata
    #34848968
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача в следующем в следующем файле есть строка ячеек в каждой из которых приведена фуекция "getpivotdata". Необходимо, чтобы будующий макрос, удалял часть функции, а именно путь к файлу со сводной таблицы, т.о. преобразовывал функцию, меняя ссылку на файл со сводной таблицой. Возможно есть и другой способ обновить связь с файлом со сводной таблицей но мне это не удается сделать. Прикладываю файл с макросом, записанный макрорекордером. Буду признателен за помощь
...
Рейтинг: 0 / 0
getpivotdata
    #34849028
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты же макрос в Персонал заисал

Вообще поменять текст в Рэндже так
Код: plaintext
Range("A2:E2").Replace "C:\temp\", "C:\test\"
...
Рейтинг: 0 / 0
getpivotdata
    #34849204
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот теперь макрос прикреплен как следует. Если не затруднит напишите исходя из моего конретного примера.
...
Рейтинг: 0 / 0
getpivotdata
    #34849316
Nitrolis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nullifidusвот теперь макрос прикреплен как следует. Если не затруднит напишите исходя из моего конретного примера.

так подойдет?
...
Рейтинг: 0 / 0
getpivotdata
    #34849386
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не.мне придется вводить адрес файла, при том каждой ячейке в отдельности. Возможно я не достаточно ясно объяснил. Задача то проста. Удалить часть функции, в ячейках из указанного диапазона; ссылка будет изменена и значение поменяется на число из сводной таблицы открытого в настоящий момент файла. макрорекордовский макрос это делает, но макрос получается огромным.
...
Рейтинг: 0 / 0
getpivotdata
    #34849574
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadТы же макрос в Персонал заисал

Вообще поменять текст в Рэндже так
Код: plaintext
Range("A2:E2").Replace "C:\temp\", "C:\test\"


А мой приер чем не устраивает, чтобы убрать путь совсем нужно оставить второй аргумент пустым.
Код: plaintext
Range("A2:E2").Replace "C:\temp\", ""
...
Рейтинг: 0 / 0
getpivotdata
    #34849629
Nitrolis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В примере ссылка идет только на один файл сводной таблицы и данные формул обновятся для всех ячеек, записанных в макросе...

Вот еще вариант! С обновлением всех ссылок активной книги...
...
Рейтинг: 0 / 0
getpivotdata
    #34849675
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub Макрос1()
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=GETPIVOTDATA(""Sales"",'[STOCK_Report.xls]trands by total, by products'!R8C1,""WEEK"",""2007_01"")*2.5"
Range("A2:E2").Replace "C:\temp\", ""
End Sub

ты предлогаешь сделать приблизительно так? но даже если записать макрос корректно, он не будет учитывать то что в каждой следующей ячейки изменяется дата?
...
Рейтинг: 0 / 0
getpivotdata
    #34849853
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nitrolis спасибо за помощь, но включения твоего макроса значение в ячейки меняется на #ссылка.я приложил файл со сводной таблицой. Вот два вида записи функиии:

=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("Sales";'C:\DOCUME~1\\LOCALS~1\Temp\Rar$DI00.531\[STOCK_Report.xls]trands by total, by products'!$A$8;"WEEK";"2007_01")*2,5*3/7

=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("Sales";'[STOCK_Report.xls]trands by total, by products'!$A$8;"WEEK";"2007_01")*2,5*3/7
При подобном изменении значение меняется как положено.

При этом файл с сводной таблице я сохранять не собираюсь, поэтому и избрал такой путь.


Черт, в моем сообщение понять что либо очень сложно, я прекрасно понимаю. но все же ребята очень прошу
...
Рейтинг: 0 / 0
getpivotdata
    #34850122
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NullifidusSub Макрос1()
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=GETPIVOTDATA(""Sales"",'[STOCK_Report.xls]trands by total, by products'!R8C1,""WEEK"",""2007_01"")*2.5"
Range("A2:E2").Replace "C:\temp\", ""
End Sub

ты предлогаешь сделать приблизительно так? но даже если записать макрос корректно, он не будет учитывать то что в каждой следующей ячейки изменяется дата?

Я предлагаю пересмотреть задачу впринципе, если вам интересно

А из сложившейся ситуации можете попробовать выйти следующим образом.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub UpdLink()
Dim aLinks, i As Long, fname As String
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
    For i =  1  To UBound(aLinks)
     fname = Split(aLinks(i), "\")(UBound(Split(aLinks(i), "\")))
     If fname = ActiveWorkbook.Name Then ActiveWorkbook.ChangeLink aLinks(i), fname, xlExcelLinks
    Next i
End If
End Sub

Если не будет получаться попробуйте предварительно сохранить книгу.

При этом формулу лучше сразу записывать как

=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("Sales";'trands by total, by products'!$A$8;"WEEK";A1)*2,5 ,
вместо "2007_01", ссылку на ячейку в которой записана строка
...
Рейтинг: 0 / 0
getpivotdata
    #34850151
Nitrolis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullifidusNitrolis спасибо за помощь, но включения твоего макроса значение в ячейки меняется на #ссылка.я приложил файл со сводной таблицой. Вот два вида записи функиии:


Странно! хочет чтобы файл-источник при обновлении ссылок был открыт(((
чуть подправил...
...
Рейтинг: 0 / 0
getpivotdata
    #34850433
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почти получается. проблема теперь в следующем: по порядку: открываю книгу со сводной таблицей выбираю объект в раскрывающемся списке, в таблице появляются значения; открываю книгу с макросом, нажимаю на кнопку, прописываю адрес книги с таблицей находящейся в папке temp, и вот здесь намечается загвоздка: excel не может открыть указанную папку потому что она уже открыта. но если я просто открою файл и нажму кнопку я не смогу выбрать нужный мне объект в сводной таблице.

Deggasad спасибо, но что то не выходит ваш вариант, даже при условии что я предварительно сохраняю книгу
...
Рейтинг: 0 / 0
getpivotdata
    #34850783
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предыдущий мой код обновлял ссылки которые имеют тоже имя что и текущая книга, просто неправильно понял вас.
Текущий код обновляет все ссылки если их имена совпадают с открытыми файлами.
А для ваших функций всё равно обязательно иметь открытый файл.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub UpdLink2()
Dim aLinks, i As Long, fname As String, proverka
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
    For i =  1  To UBound(aLinks)
     fname = Split(aLinks(i), "\")(UBound(Split(aLinks(i), "\")))
      
    On Error Resume Next
      proverka = Workbooks(fname).Creator
    On Error GoTo  0 
    
    If proverka = &H5843454C Then ActiveWorkbook.ChangeLink aLinks(i), fname, xlExcelLinks
    Next i
End If
End Sub
...
Рейтинг: 0 / 0
getpivotdata
    #34850830
Nullifidus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deggasad брависсимо, прочитав уокенбаха надеюсь также мастерски научусь писать макросы. Nitrolis благодарю
...
Рейтинг: 0 / 0
getpivotdata
    #34850844
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NullifidusDeggasad брависсимо, прочитав уокенбаха надеюсь также мастерски научусь писать макросы. Nitrolis благодарю

Сам его читаю сейчас. "Профессиональное программирование на VBA в Excel 2002" - страниц 150 одолел.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / getpivotdata
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]