У меня странная проблема в Excel и VBA.
Я звоню ModifyAppliesToRange
на различные FormatCondition
, наряду со многими другими FormatCondition
связанными вещами.
Некоторое время он работает нормально (около 2-300 вызовов), а затем без всякой причины вижу, что мой Excel (и среда разработки VBA) завершит работу без ошибок ни из моего обработчика ошибок, ни из excel, без уведомлений,ничего, кроме «паузы», где ничего не происходит, пока не произойдет сбой.Это происходит независимо от того, запускаю ли я его нормально или с точкой останова и шагом.
В зависимости от точного содержимого рабочего листа FormatConditions
точное число раз, когда оно работает, может меняться.Но если начальные условия одинаковы, то точка отказа одинакова (то есть, она не срабатывает в том же FormatCondition
).Ошибка кода:
myCF.ModifyAppliesToRange Union(range1, range2)
, где myCF As FormatCondition
Я пытался
Dim rng As Range
Set rng = Union(range1, range2)
myCF.ModifyAppliesToRange rng
Я проверял: myCF
, range1
Насколько я могу судить, range2
и rng
действительны и показывают действительные строки .Address
(для диапазонов).Например, произойдет сбой range1.Address
= "$DO$9:$GN$39,$BD$8:$BD$39"
, range2.Address
= "$CI$9:$DN$39"
, и в результате rng.Address
= "$BD$8:$BD$39,$CI$9:$GN$39"
Итак, я попытался
Set rng = Union(Range(CFFrom.AppliesTo.Address), Range(CFTo.AppliesTo.Address))
Та же проблема.
Иногда (при других условиях запуска) он проходит выше ModifyAppliesToRange
, но в тот момент, когда я смотрю на myCF.AppliesTo.Address
, происходит тот же сбой - будь то наведение мыши на него или показэто в часах, или отображение в немедленном.Тем не менее, rng.Address
не дает такой проблемы.
Тем не менее, кажется, что он также прекрасно работает в течение 2-300 раз.
Я подозреваю, что проблема с памятью (но Excel не использует много памяти или ЦП, на компьютере много свободной памяти, я использовал Option Explicit и т. д.) или жесткий предел или ошибка в Excel
Есть идеи относительно того, почему это может происходить?Любые идеи относительно того, как я могу узнать, что закрывает Excel?
ПРИМЕЧАНИЕ: Чтобы дать точный способ воспроизвести это, я должен был бы опубликовать всю свою электронную таблицу и код, который я не хочу делать,Тем не менее, я мог бы быть в состоянии отправить один на один, если это будет необходимо.