Dim s as Worksheet, a as long (or integer),c as range, w as long,
no need to set c when used as a for each, had to do that way as you can't get the width of the range of more than one cell
looks like i copied it wrong as the range is hard coded, but should be the same as the working range, but as all the cells are the same width it works anyway, so should be moved outside (before) the loop to improve speed

certainly you can populate the sheet first, then use this code to format it
as you already have a sheet set (xlWksht) you don't need to use or set s as it is only a duplicate

here is the code incorporated into your original code
note i havn't tested this as i can't, not have the database, but it looks right, not i moved the code to set the width of column b to the top as it would affect the width of the comment text if it is changed afterwards
vb Code:
  1. ii = 5
  2.     xlWksht.Columns("B:B").ColumnWidth = 23
  3.     For Each c In xlWksht.Range("A8:h8"): w = w + c.ColumnWidth: Next
  4.     Do Until rsin.EOF = True
  5.        ii = ii + 2
  6.        xlWksht.Cells(ii, 1).Value = rsin![Req No]
  7.        xlWksht.Cells(ii, 2).Value = rsin![Description]
  8.        xlWksht.Cells(ii, 3).Value = rsin![P L] & Chr(10) & rsin![Pgmr2] & Chr(10) & rsin![Pgmr3]
  9.        xlWksht.Cells(ii, 4).Value = rsin![ClientName] & Chr(10) & rsin![Status]
  10.        xlWksht.Cells(ii, 5).Value = "-" & Chr(10) & rsin![Per Hrs]
  11.        xlWksht.Cells(ii, 6).Value = rsin![Hours] & Chr(10) & rsin![Tot Hrs]
  12.        xlWksht.Cells(ii, 7).Value = rsin![Start Date] & Chr(10) & rsin![Start Date]
  13.        xlWksht.Cells(ii, 8).Value = rsin![End Date] & Chr(10) & rsin![End Date]
  14.        xlWksht.Cells(ii + 1, 1).Value = "Comments:" & Chr(10) & "'" & rsin![Comments]
  15.        With xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8))
  16.               .HorizontalAlignment = xlLeft
  17.               .VerticalAlignment = xlTop
  18.               .WrapText = True
  19.               .Orientation = 0
  20.       '        .AddIndent = False
  21.               .IndentLevel = 0
  22.       '        .ShrinkToFit = False
  23.               .MergeCells = True
  24.               .RowHeight = .RowHeight * Len(xlWksht.Range("A" & a).Text) / w
  25.       End With
  26.  
  27.        'xlWksht.Cells(ii + 1, 1).Value = Replace("Comments:" & Chr(10) & "'" & rsin![Comments], vbLf, vbTab) ' replace linefeed with tab
  28. '''       xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8)).Merge
  29. '''       xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8)).HorizontalAlignment = xlLeft
  30. '''       xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8)).WrapText = True
  31. '''       'xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8)).RowHeight = 70.25
  32. '''       xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8)).VerticalAlignment = xlTop
  33. '''       xlWksht.Range(Cells(ii + 1, 1), Cells(ii + 1, 8)).Orientation = 0
  34.        rsin.MoveNext