Now incorporate the RecordsetClone code. I presume you want data from the subform. I have not tested this so you will have to debug. Refer to guidelines in link at bottom of my post.
Code:
Dim j As Integer, Col As Integer, Row As Integer, D As String, K As String
With Me.subfrmDietPlanDetails.Form.RecordsetClone
.MoveFirst
Do Until .EOF
For j = 1 To .Fields.Count - 2
D = .Fields(j).Name
K = !MealCode
Row = Switch(K = "Breakfast", 2, K = "Snak1", 3, K = "Lunch", 4, K = "Snak2", 5, K = "Dinner", 6, K = "Snak3", 7, K = "Night", 8)
Col = Switch(D = "Monday", 2, D = "Tuesday", 3, D = "Wednesday", 4, D = "Thursday", 5, _
D = "Friday", 6, D = "Saturday", 7, D = "Sunday", 8)
doc.Tables(1).Cell(Row, Col).Range = Nz(.Fields(j).Value, "")
Next
.MoveNext
Loop
End With