Here is a repost of the code, with an explanation.
Public Sub changestylesheets() ' Defining the sub
Dim oAxDbDoc As New AxDbDocument ' Declare variable
Dim lst As Variant, dwg As Variant ' Declare variables
lst = Array("C:\Program Files\Autodesk Civil 3D 2006\Sample\lineweights.dwg",
"C:\Program Files\Autodesk Civil 3D 2006\Sample\truetype.dwg")
' Above is a list of drawings on which to operate
For Each dwg In lst ' Start of loop through set of drawings
oAxDbDoc.Open dwg ' This line opens the drawing using ObjectDBX, not the AutoCAD drawing editor.
Dim item As AcadLayout ' Declare variable
For Each item In oAxDbDoc.Layouts ' Start of loop through all layouts
item.StyleSheet = "Fill Patterns.ctb" ' Sets the CTB file name (StyleSheet Property)
Next item ' End of loop through all layouts
oAxDbDoc.SaveAs dwg ' Saves the drawing
Next dwg ' End of loop through all drawings
End Sub ' End of subroutine.
One thing I failed to mention, you must add a reference to your VBA project (using Tools | References in the VBAIDE) to "AutoCAD/ObjectDBX Common 16.0 Type Library"