Excel vba formel falsch,Was?
Sub test()
Worksheets("Tabelle1").Range("A1") = worksheetfunction.iif(or(isempty(Range(A1)),isempty(Range(B2)),""(Range(A1-B2+1))
End Sub
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