У меня вопрос, очень похожий на этот, где у меня есть:
- Создан рабочий лист со спарклайном, который ссылается на динамический диапазон
- У меня есть макрос, который через цикл обновляет некоторые ячейки (и, следовательно, меняет спарклайн с каждой итерацией цикла)
- Копирует большой диапазон (включая спарклайн и другие именованные диапазоны)
- Вставляет этот диапазон на второй лист (я не мог понять, как это сделать по-другому, поэтому я использую метод
Range.CopyPicture
и вставляю диапазон в виде изображения на второй лист, но если есть способ, который вы знаете, вставьте сам спарклайн, чтобы он не обновлялся, когда я снова обновляю ранег, ПОЖАЛУЙСТА, дайте мне знать)
Теперь моя проблема в том, что если я прохожу код в режиме отладки, все работает хорошо, НО если я разрешаю запуск макросу автоматически, спарклайн никогда не обновляется (так что всегда выглядит так, как будто это произошло при первом запуске макроса) .
В качестве простого примера моей проблемы предположим, что у меня есть это на моем листе:
Cells A1-A10:
1,2,3...,10 (what I'll use for the sparkline range)
Cell Named "StartCol":
=RANDBETWEEN(1,9)
Cell Named "Width":
=RANDBETWEEN(1,10-StartCol)
Dynamic range Named "SparkRange":
=OFFSET(Sheet1!$A$1,0,StartCol-1,1,Width)
Cell With a SparkLine within a larger range Named "ToCopy"
A Second Sheet Named "OutPut" with a named range "Output" where we'll start pasting to
Теперь упрощенный код VBA:
Sub Test()
Sheets("Output").Select
For i = 1 To 10
Application.Calculate ' Probably not needed, but putting it in to be safe
Sheets("Sheet1").Range("ToCopy").CopyPicture
Sheets("Output").Range("Output").Select
Sheets("Output").Paste
Sheets("Output").Names("output").RefersTo = Sheets("Output").Range("Output").Offset(Sheets("Sheet1").Range("ToCopy").Rows.Count + 2)
Next i
End Sub
Теперь это ДОЛЖНО вставить 10 разных спарклайнов, а лучше 10 копий одного и того же. И если я прохожу через него в режиме отладки (или даже устанавливаю точку останова, а затем нажимаю F5
в VBA, тогда он работает!) Я снова посмотрел на упомянутый выше вопрос и попробовал его трюки, но безрезультатно ... Кто-нибудь знает как заставить это работать для спарклайнов ????
Спасибо!!!
Doevents
, чтобы у него было достаточно времени, чтобы поместить изображение в буфер обмена, а затем вставить его? - person Siddharth Rout   schedule 11.09.2014