Подскажите, пожалуйста, чем обусловлено следующее странное поведение экселя при экспорте графика картинкой.
Есть два графика на двух листах, но на одном из них график расположен наверху листа, а втором строке на сотой. В первом случае график экспортируется без проблем, а во втором пустой картинкой до тех пор пока не зайдешь на лист и не прокрутишь до графика или не поднимешь его на самый верх листа.
[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]
Доброго времени суток,
Подскажите, пожалуйста, чем обусловлено следующее странное поведение экселя при экспорте графика картинкой.
Есть два графика на двух листах, но на одном из них график расположен наверху листа, а втором строке на сотой. В первом случае график экспортируется без проблем, а во втором пустой картинкой до тех пор пока не зайдешь на лист и не прокрутишь до графика или не поднимешь его на самый верх листа.
[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
Хм, а у меня в экселе 2013 и 2016 проблема, если просто открыть файл и сразу понажимать кнопки, второй график экпортируется пустой картинкой ( Но, если открыть файл, зайти на лист chart2 и проскролить до графика, то он начинает нормально экспортироваться..
UPD. погуглил еще, пишут (1, 2) что проблема "иногда" возникает, советуют перед экспортом добавить (сработало) [vba]
Код
.Activate
[/vba]Ну или просто в моем примере – передвинуть график на самый верх листа. Возможно в версиях экселя >2010 графики как-то оптимальненько рендерятся только для видимой области.
Хм, а у меня в экселе 2013 и 2016 проблема, если просто открыть файл и сразу понажимать кнопки, второй график экпортируется пустой картинкой ( Но, если открыть файл, зайти на лист chart2 и проскролить до графика, то он начинает нормально экспортироваться..
UPD. погуглил еще, пишут (1, 2) что проблема "иногда" возникает, советуют перед экспортом добавить (сработало) [vba]
Код
.Activate
[/vba]Ну или просто в моем примере – передвинуть график на самый верх листа. Возможно в версиях экселя >2010 графики как-то оптимальненько рендерятся только для видимой области.user0
Сообщение отредактировал user0 - Среда, 17.01.2018, 11:36