O Excel nunca permite que o Solver use mais de um parâmetro de execução como você usou ,
SetCell:="$M$30", MaxMinVal:=2, Valueof:="0", ByChange:="$D$4:$D$28"
.
Sua sintaxe deve ser com MaxMinVal
ou Valueof
like ,
SetCell:="$M$30", Valueof:="0", ByChange:="$D$4:$D$28".
ou
SetCell:="$M$30", MaxMinVal:=2, ByChange:="$D$4:$D$28"
NB: Você precisa decidir qual deles é necessário.
Espero que isso ajude você.