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

Вход

Регистрация

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

 

= Мир MS Excel/Особенности экспорта графика картинкой - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Особенности экспорта графика картинкой
user0 Дата: Среда, 17.01.2018, 09:03 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 152
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
Доброго времени суток,

Подскажите, пожалуйста, чем обусловлено следующее странное поведение экселя при экспорте графика картинкой.

Есть два графика на двух листах, но на одном из них график расположен наверху листа, а втором строке на сотой.
В первом случае график экспортируется без проблем, а во втором пустой картинкой до тех пор пока не зайдешь на лист и не прокрутишь до графика или не поднимешь его на самый верх листа.

[vba]
Код
Sub ShowChart(iChart As Integer)
    Dim fPic As String
    fPic = ThisWorkbook.Path & "\temp.gif"
   'fPic = Environ("USERPROFILE") & "\Desktop\temp.gif"

    Select Case iChart
    Case 1: Worksheets("chart1").ChartObjects(1).Chart.Export fPic, "GIF"
    Case 2: Worksheets("chart2").ChartObjects(1).Chart.Export fPic, "GIF"
    End Select

    With Worksheets("test")
        .Range("E1").Select
        .Pictures.Insert (fPic)
    End With

    Kill fPic
End Sub
[/vba]
К сообщению приложен файл: chart_test.xlsm (43.2 Kb)


Сообщение отредактировал user0 - Среда, 17.01.2018, 09:09
 
Ответить
СообщениеДоброго времени суток,

Подскажите, пожалуйста, чем обусловлено следующее странное поведение экселя при экспорте графика картинкой.

Есть два графика на двух листах, но на одном из них график расположен наверху листа, а втором строке на сотой.
В первом случае график экспортируется без проблем, а во втором пустой картинкой до тех пор пока не зайдешь на лист и не прокрутишь до графика или не поднимешь его на самый верх листа.

[vba]
Код
Sub ShowChart(iChart As Integer)
    Dim fPic As String
    fPic = ThisWorkbook.Path & "\temp.gif"
   'fPic = Environ("USERPROFILE") & "\Desktop\temp.gif"

    Select Case iChart
    Case 1: Worksheets("chart1").ChartObjects(1).Chart.Export fPic, "GIF"
    Case 2: Worksheets("chart2").ChartObjects(1).Chart.Export fPic, "GIF"
    End Select

    With Worksheets("test")
        .Range("E1").Select
        .Pictures.Insert (fPic)
    End With

    Kill fPic
End Sub
[/vba]

Автор - user0
Дата добавления - 17.01.2018 в 09:03
Roman777 Дата: Среда, 17.01.2018, 10:23 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
user0, у меня в 2007 экселе подобных проблем нет. Обе картинки вставляются на первый лист без лишних телодвижений...


Много чего не знаю!!!!
 
Ответить
Сообщениеuser0, у меня в 2007 экселе подобных проблем нет. Обе картинки вставляются на первый лист без лишних телодвижений...

Автор - Roman777
Дата добавления - 17.01.2018 в 10:23
user0 Дата: Среда, 17.01.2018, 11:10 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 152
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
Хм, а у меня в экселе 2013 и 2016 проблема, если просто открыть файл и сразу понажимать кнопки, второй график экпортируется пустой картинкой (
Но, если открыть файл, зайти на лист chart2 и проскролить до графика, то он начинает нормально экспортироваться..

UPD. погуглил еще, пишут (1, 2) что проблема "иногда" возникает, советуют перед экспортом добавить (сработало) [vba]
Код
.Activate
[/vba]Ну или просто в моем примере – передвинуть график на самый верх листа.
Возможно в версиях экселя >2010 графики как-то оптимальненько рендерятся только для видимой области.


Сообщение отредактировал user0 - Среда, 17.01.2018, 11:36
 
Ответить
СообщениеХм, а у меня в экселе 2013 и 2016 проблема, если просто открыть файл и сразу понажимать кнопки, второй график экпортируется пустой картинкой (
Но, если открыть файл, зайти на лист chart2 и проскролить до графика, то он начинает нормально экспортироваться..

UPD. погуглил еще, пишут (1, 2) что проблема "иногда" возникает, советуют перед экспортом добавить (сработало) [vba]
Код
.Activate
[/vba]Ну или просто в моем примере – передвинуть график на самый верх листа.
Возможно в версиях экселя >2010 графики как-то оптимальненько рендерятся только для видимой области.

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

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