Я пытаюсь установить значение в Excel VBA на основе условия, но каждый раз он падает с ошибкой, связанной с пространством стека, и когда я пытался установить ForceFullCalculation на Учебное пособие в соответствии с рекомендациями в другой SO пост, ошибка я получаю:Excel сбой, когда значение задано для диапазона
Run-time error '-2147417848 (80010108)':
Method 'Value' of object 'Range' failed
строка кода в вопросе
If Range("G4") = "Yes" Then
Range("K4:L6").Interior.ColorIndex = 4 ' green
Range("K4").Value = "x"
End If
есть несколько из этих блоков в коде. Когда я прокомментирую строку, которая устанавливает значение «x», код, кажется, работает нормально.
If Range("G4") = "Yes" Then
Range("K4:L6").Interior.ColorIndex = 4 ' green
'Range("K4").Value = "x"
End If
Почему это сбой при установке одной ячейки к значению «х» после окрашивания клеток с зеленым (или любого цвета)? Используемая версия - 32-разрядная версия Excel 2010 на компьютере с 8 ГБ оперативной памяти.
Выполняете ли вы это в событии типа Worksheet_Change? Обычно ошибка пространства стека вызвана рекурсией. – Rory
Да, это внутри WorkSheet_Change. Не могли бы вы порекомендовать сделать это другим способом, чтобы остановить его сбой? Я не знаю, где происходит рекурсия, о которой вы упоминаете, я немного новичок в Excel VBA. – warsong
Затем вам нужно добавить 'Application.Enableevents = False' перед сменой ячеек (что вызовет ваше событие снова и снова и т. Д.), А затем снова сменится на True. – Rory