It seems, your post already contains a hint about the answer:
The 8th column cannot be populated from the recordset.
If so, then, it seems, you have no choice than to loop through all the rows and set the required cell values.
The only possible exclusion I can think of is to prepare a recordset that already contains the 8th column calculated/populated (using a stored procedure, a wider SELECT statement, etc). But I do not know whether this idea is applicable to your app.