Please help me!I can't run it..

Private Sub Command1_Click()
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim M As Single
Dim d As Single
Dim p As Single
Dim q As Single
Dim q1 As Single
Dim qq As Single
Dim SweepFeature As Object
Dim X1 As Single
Dim X2 As Single
Set swApp = CreateObject("SldWorks.application")
Set Part = swApp.NewDocument("D:\ProgramFiles\SolidWorks\lang\chinese-simplified\Tutorial\part.prtdot", 0,0#, 0#)
Set Part = swApp.ActivateDoc2("Part1", False, longstatus)
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
Const pi = 3.141592654


M = 20 '????
d = 2 '????
p = 6 '??
q = 25 '??????,??????
q1 = 2 '????????

qq = 2 * q1
'h = p * q + q1 * d * 2 '????,q????

'?????
'???
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Part.CreateCircle 0, M / 2, 0, 0, M / 2 + d / 2, 0
'???
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Part.CreateCircle 0, 0, 0, M / 2, 0, 0
'?????
Part.InsertHelix False, False, False, True, 0, 0.01875, p, q, 0,1.570796326795

'??????
'???
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Part.CreateCircle -p * q, M / 2, 0, -p * q, M / 2 + d / 2, 0
Part.ClearSelection2 True

'?????
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.CreatePlaneAtOffset3 p * q, False, True
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
'???
boolstatus = Part.Extension.SelectByID2("???1", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Part.CreateCircle 0, 0, 0, M / 2, 0, 0
'?????
Part.InsertHelix False, False, False, True, 0, 0.01875, d + 0.05,qq, 0, 1.570796326795

'??????
'???
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Part.CreateCircle 0, M / 2, 0, 0, M / 2 + d / 2, 0
'???
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Part.CreateCircle 0, 0, 0, M / 2, 0, 0
'?????
Part.InsertHelix True, True, False, True, 0, 0.01875, d + 0.05, qq,0, 1.570796326795

'?????????
boolstatus = Part.Extension.SelectByID2("??1", "SKETCH", 0, 0, 0,False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("???/???1","REFERENCECURVES", 0, 0, 0, True, 4, Nothing, 0)
Set SweepFeature =Part.FeatureManager.InsertProtrusionSwept3(False, False, 0, False,False, 0, 0, False, 0, 0, 0, 0, 1, 1, 1, 0, 1)
'??????????
boolstatus = Part.Extension.SelectByID2("??3", "SKETCH", 0, 0, 0,False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("???/???2","REFERENCECURVES", 0, 0, 0, True, 4, Nothing, 0)
Set SweepFeature =Part.FeatureManager.InsertProtrusionSwept3(False, False, 0, False,False, 0, 0, False, 0, 0, 0, 0, 1, 1, 1, 0, 1)

'??????????
boolstatus = Part.Extension.SelectByID2("??5", "SKETCH", 0, 0, 0,False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("???/???3","REFERENCECURVES", 0, 0, 0, True, 4, Nothing, 0)
Set SweepFeature =Part.FeatureManager.InsertProtrusionSwept3(False, False, 0, False,False, 0, 0, False, 0, 0, 0, 0, 1, 1, 1, 0, 1)

'????
boolstatus = Part.Extension.SelectByID2("?????", "PLANE", 0, 0, 0,False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
X1 = (d * qq) / 2
X2 = X1 + d * qq * 2
Part.CreateLine2 X1, (M + d) / 2, 0, X2, (M + d) / 2, 0
Part.CreateLine2 X2, (M + d) / 2, 0, X2, -(M + d) / 2, 0
Part.CreateLine2 X2, -(M + d) / 2, 0, X1, -(M + d) / 2, 0
Part.CreateLine2 X1, -(M + d) / 2, 0, X1, (M + d) / 2, 0
X1 = -p * q - (d * qq) / 2
X2 = X1 - d * qq * 2
Part.CreateLine2 X1, (M + d) / 2, 0, X2, (M + d) / 2, 0
Part.CreateLine2 X2, (M + d) / 2, 0, X2, -(M + d) / 2, 0
Part.CreateLine2 X2, -(M + d) / 2, 0, X1, -(M + d) / 2, 0
Part.CreateLine2 X1, -(M + d) / 2, 0, X1, (M + d) / 2, 0
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line8", "SKETCHSEGMENT",0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut True, False, False, 6, 0, M + d,0.01, False, False, False, False, 0.01745329251994,0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0

'??
boolstatus = Part.SetUserPreferenceToggle(198, True)
Part.ShowNamedView2 "*???????", 8
Part.ViewZoomtofit2
'?sw???dwg??,*???????/1000,??1:1??
End SubSolidworksApi macros