Excel vba formel falsch,Was?

4 Antworten

Suboptimierer hat natürlich recht, es macht Sinn, das auseinander zu "klamüsern".
Aber ich habe mal versucht möglichst nah an Deinem Entwurf zu bleiben um die Fehler erkennbar zu machen.
Vor allem ist IIF keine Worksheetfunction und akzeptiert offensichtlich auch kein OR.

Ich denke SO sollte es klappen, wie von Dir beabsichtigt:

Sub test()
 Worksheets("Tabelle1").Range("A1") = IIf((IsEmpty(Range("A1")) + IsEmpty(Range("B2"))) <> 0, "xxx", (Range("A1") - Range("B2") + 1))
End Sub

Oder?

iif(isempty(Range("A1")) or isempty(Range("B2")),"",Range("A1")-Range("B2")+1)

Sub test()

Worksheets("Tabelle1").Range("A1") = worksheetfunction.iif(or(isempty(Range(A1)),isempty(Range(B2)),""(Range(A1-B2+1))

End Sub

Meine Empfehlung: Zieh den Code auseinander. Alles in einer Zeile ist sehr unübersichtlich.

Sub test()
 If [a1] = "" Or [b2] = "" Then
  [a1] = ""
 Else
  [a1] = [a1] - [b2] + 1
 End If
End Sub