This is what I came up with as per headers in obs. Did some testing, seems okay.
If you still need to use Bold font in the body I suggest Ron De Bruin's site LINK'... obs = "Dear " & wsVR.Range("G6").Value & "," & vbNewLine & _ "We have conducted a detailed LP review of " & wsVR.Range("D4").Value & " Store (" & wsVR.Range("D5").Value & ") " & _ "as on " & Format(wsVR.Range("D7").Value, "DD-MMM-YYYY") & ". " & "Based on the observations, the store is categorized as " & SRating & "." & vbNewLine & _ "Please find the summary below and request your action plans and corrective measures within three working days." & vbNewLine & _ "Important Observations noted are as follows-" Dim flag As Boolean '<- added Dim head As String '<- added For Each cell In wsVR.Range("L11:L83") If Not IsEmpty(cell) Then '----- added ---------------------------------------------------------- If head <> cell.Offset(0, -11).MergeArea.Cells(1, 1) Then flag = False 'detect if header has changed (new section) then reset flag If flag = False Then 'detect if header has already been added to obs obs = obs & vbNewLine & vbNewLine & cell.Offset(0, -11).MergeArea.Cells(1, 1) & ":" 'add header to obs head = cell.Offset(0, -11).MergeArea.Cells(1, 1) 'store header flag = True 'set flag for header already added to obs End If '----- added ---------------------------------------------------------- obs = obs & vbNewLine & cell.Value End If Next cell '...