FYI - The syntax you are unfamiliar with is a bit tricky at first. The resolveNode function evaluates a string and tries to see if there is a form object to match it. When your string is...
"Form.subForm.Table.Row[x].Cell1"
The script is looking for a Row with an index of "x", which technically does not exist. By breaking the string and concatenating in the variable (at runtime, whatever value that variable contains - in your case, the loop increment) to that string. LiveCycle will evaluate it as such.
Hope that helped explain it a little.
Ryan D. Lunka
Cardinal Solutions Group
rlunka@cardinalsolutions.com