Я думаю, проблема в том, что Worksheet_change вызывается рекурсивно, потому что вы обновляете значение в том же столбце.
Вы можете справиться с этим с помощью Application.EnableEvents. Это остановит событие Worksheet_change, и после обновления вы сможете вернуть его в значение true.
Application.EnableEvents = False
set value in E column
Application.EnableEvents = True
Или Вы можете просто использовать следующую формулу в отдельном столбце (например, F) и вставить ее во весь столбец.
=IF(ISNUMBER(E2),E2*1000,0)