Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2018, 23:05   #1
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию Програмно изменить параметры ряда графика

Хочу скопировать график с одной книги в другую, но после вставки график продолжает ссылаться на данные первой книги. Как изменить формулу графика что-бы он использовал целевую книгу как источник данных?
Мой вариант такой. Работает с закрытой книгой, но как только копирую в открытый файл, на строке изменения Formula Excel вылетает без какой-либо ошибки.
Код:
    If IsWorkBookOpen(FileName) = True Then
        Set oBook = Workbooks(FileNameReal)
        IsWorkbookOpened = True
    Else
        Set oBook = Workbooks.Open(FileName)
        IsWorkbookOpened = False
    End If

With oBook
        shCount = .Worksheets.Count
        Set ws = .Sheets.Add(After:=.Sheets(shCount))
        ws.Name = shName
        ThisWorkbook.Worksheets(shProductName).Range("A1:H100").Copy _
        Destination:=ws.Range("A2")
        ThisWorkbook.Worksheets(shProductName).Range("A1:H100").Copy
        ws.Range("A2").PasteSpecial xlPasteColumnWidths
        Set wsCht = ws.ChartObjects(1).Chart
        With wsCht
            strTmp = "=SERIES(,{""%""},'" & ws.Name & "'!G5:H5" & ",1)"
               .SeriesCollection(1).Formula = strTmp '<<==== H E R E
               strTmp = "=SERIES(,{""%""},'" & ws.Name & "'!G6:H6" & ",1)"
               .SeriesCollection(2).Formula = strTmp
               strTmp = "=SERIES(,{""%""},'" & ws.Name & "'!G7:H7" & ",1)"
               .SeriesCollection(3).Formula = strTmp
        End With
        Application.CutCopyMode = False
        .Save
        .Saved = True
    End With
......
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Програмно изменить OnClick fineleave Общие вопросы Delphi 7 12.04.2011 19:07
Изменить параметры печати Vitek.i Microsoft Office Excel 4 06.12.2010 19:50
Как програмно изменить цвет ярлычка активного листа? ru3000 Microsoft Office Excel 9 19.07.2009 22:31
Как програмно изменить основной IP адрес в настройках TCP/IP сетевой карты SeRhy Работа с сетью в Delphi 1 18.03.2009 05:52
Как програмно передать параметры на сервер Sniper Работа с сетью в Delphi 2 11.09.2007 10:05