Большая Диаграмма Копировать Вставить Excel VBA долгое время выполнять - PullRequest
0 голосов
/ 15 января 2020

У меня есть большой набор данных (~ 970 000 точек), и я хочу скопировать и вставить на другой лист через VBA. Я добился успеха, но это заняло более 2 минут. Я наклеиваю как картинку.

Какие-нибудь мысли / идеи о том, как я могу сделать это за меньшее время? На другом шаге я хочу скопировать график в .ppt - в настоящее время я копирую изображение, сгенерированное первым шагом, и в короткий промежуток времени вставляю его в .ppt, поэтому диаграмму необходимо преобразовать в формат - представьте лучший формат?

Спасибо (из-за проблем с загрузкой нескольких строк кода в секцию [Code], которую я сейчас использую),

Sheets("hg Flow and Pressure").Select
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy

With Worksheets("h For SinglePageExisting")        ' this takes over 2 minutes to process - tried
     .Activate                                      ' to make chart on anther worksheet - no luck
     .Range("T15").Select                           ' tried to change the formatting - no luck
     .Pictures.Paste.Select
 End With

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Является ли «hg Flow and Pressure» диаграммой? Это на собственном листе? И "h For SinglePageExisting" является рабочим листом?

Итак ...

Вам не нужно go выбирать и активировать все.

Charts("hg Flow and Pressure").CopyPicture xlScreen, xlPicture
Worksheets("h For SinglePageExisting").Paste
0 голосов
/ 15 января 2020

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

Вы можете поместить подмножество данных из столбца A в вспомогательный столбец с формулой например:

=OFFSET($A$2,10*ROW()-48,0,1,1)

, где $A$2 - начало данных, 10 - выбирает каждую десятую точку данных, а -48 - смещение, которое зависит от того, в какой строке начинается ваш вспомогательный столбец. Вы можете настроить 10 и -48 в соответствии с данными вашей электронной таблицы.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...