Because your formula is enclosed in double-quotes.
In VBA, when denoting literal text, you use double-quotes as your text delimiter.
Try this simple test. Here is a one-line macro that returns a Message Box.
Code:
Sub MyTest()
MsgBox "This is a test"
End Sub
Run that, and see what happens.
Now what if you try that without quotes, i.e.
Code:
Sub MyTest()
MsgBox This is a test
End Sub
What happens?
If you don't use double-quotes to indicate literal text, it thinks it should be variables, functions, properties, etc., so you will get errors when it cannot find any of those things.
Note when using text qualifiers, every starting double-quote needs an ending one. Because your formula has double-quote surrounding it:
Code:
[COLOR="#FF0000"]"[/COLOR]=IF(SUM(C2:D6)=0,[COLOR="#FF0000"]"[/COLOR][COLOR="#0000FF"]"[/COLOR],Formulas!H16)[COLOR="#0000FF"]"[/COLOR]
it thinks that you are ending the double-quotes and starting them up again. It is treated the double-quotes in the formula as text qualifiers instead of literal double-quotes (because how is it to know the difference, which one you are intending). Doubling it up like that gets around that issue.
Note that whenever you have a formula like this not working the way you want, there is a simply solution. Turn on your Macro Recorder, and record yourself entering the formula into any cell. Then stop the Macro Recorder and look at the code that was just created. This will show you how that part needs to look. So let Excel do the work for you (note that the formula will probably look a bit different, as it will use R1C1 range formatting, but you can see how it handles that double-quote empty string).