У вас правильно есть оператор With
перед вашим кодом, но вы не используете его правильно. При использовании оператора with это стандартный префикс, когда используется пустой .
. Рассмотрим этот пример, если у вас есть два листа, а sheet1 - ваш активный лист:
With Sheet2
Range("A1").Value = "2"
End With
будет публиковать на листе 1. Тогда как
With Sheet2
.Range("A1").Value = "2"
End With
Будет исправлять сообщение на листе 2.
Ваш правильный код:
With Sheets("Tabelle")
For Each Zelle In .Range("K2:O" & .Cells(.Rows.Count, "O").End(xlUp).Row)
If Trim(Zelle.Value) = "" Then Zelle.Value = "0"