What am I doing wrong? New to API

Context 

I am starting on API and starting with VBA. I was trying to open a new part with a given part template and then saving it to a specific location. Initially, I was able to save to the exact location without using any Advanced save options. However, it was returning message for Else condition regardless of if it was returning 'True' value for 'BooSaved' variable. 

Now, I figured out I was using SaveAs3 wrong way and not through extension. I changed it to include Errors and other advanced options as they weren't optional in ModelDocExtension SaveAs3 method. However, it has stopped saving the parts to location with the name specified. But still returns the 'True' for 'BooSaved' variable, while message box shows, message for false condition.

Also, more resources that has good simplified ways to explain VBA for Solidworks to me would be appreciated. I started on with Solidwork API Series 1 by Luke Malpass. However, it is mainly based on another language. 

 

Thanks in Advance

The code

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swPart As SldWorks.ModelDoc2
Dim Extension As SldWorks.ModelDocExtension
'Dim Part As SldWorks.PartDoc
Dim SamTemplate As String
Dim myFolder As String
Dim AdvDataOpt As AdvancedSaveAsOptions

Sub main()
   Set swApp = Application.SldWorks
   SamTemplate = "C:\ProgramData\SOLIDWORKS\SOLIDWORKS 2024\templates\Sam.prtdot"
   
      
   Set swPart = swApp.NewDocument(SamTemplate, 0, 0, 0)
   swApp.Visible = True
   swPart.ViewZoomtofit2
   'Set swPart = swApp.ActiveDoc
   
    Set Extension = swPart.Extension
    Set AdvDataOpt = Extension.GetAdvancedSaveAsOptions(0)
       Dim BooSaved As Boolean
       Dim IErrors As Long
       Dim IWarnings As Long
       'myFolder = "Z:\A STAFF FOLDERS\SAMMY\MACROS\Learning Macros\NewRandomPart.sldprt"
           BooSaved = Extension.SaveAs3(myFolder, swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, AdvDataOpt, IErrors, IWarnings)
           'SwConst.swSaveAsOptions_e.swSaveAsOptions_Silent  You can write the whole arguement with sWConst to give context to it. Rather than using whole arguement of accessing SaveAs enums through constant libraries, you can just write a number for that enum. You can also have multiple arguements with using a +.
       
   If BooSaved = True Then
       MsgBox "Fuck Yeah! Did it"
   Else
       MsgBox "Fucking Couldn't save it"
   End If
   Debug.Print BooSaved
End Sub