У меня была такая же проблема, и я попробовал все ваши перечисленные идеи так же, как и DoEvents
, но после тестирования строки кода для строки я обнаружил, что код ошибки:
.Axes.Vertical.MinScaleType = xlSparkScaleGroup
По какой-то причине xlSparkScaleGroup
помешал обновлению спарклайнов на странице, а когда я попытался обновить-распечатать-обновить-распечатать --- лист спарклайнов отсутствовал. Мое решение состояло в том, чтобы просто удалить этот код и затем вручную установить весы. Как то так:
.Axes.Vertical.MinScaleType = xlSparkScaleCustom
.Axes.Vertical.CustomMinScaleValue = Application.WorksheetFunction.Min(Range(SLAddress))
.Axes.Vertical.MaxScaleType = xlSparkScaleCustom
.Axes.Vertical.CustomMaxScaleValue = Application.WorksheetFunction.Max(Range(SLAddress))
, где SLAddress
- адрес данных спарклайна, которые я использовал. Я надеюсь, что это поможет решить вашу проблему, и, возможно, Microsoft действительно решит эту проблему.