The main problem here is that H6 might change its contents before or after the expression, this sin't defined. If you use "Row(e32)" this is ok, because Row(e32) will be the same before and after the report runs. Also if H6 is constant, say "hello", that is ok too.
But if H6 itself has an expression or formula, then the result is not defined and this should not be used. This is because at the time of evaluating the expression the value of the cell hasn't changed yet, so instead of the string "result" it still is the string <#if H6...>
The way to deal with this is to not refer to cells that are not constant, and see to use the expression that gives value to the cell instead.
For example, let's define an expresssion H6Value = <#whatever defines h6>
Sadly you will have to do the same for i6. To simplify a little, you could use an expression with parameters (see the "expression parameters" demo and in particular the "Format(value;minimum)" expression as it is this exact case). For this case you would define instead: