9 Replies Latest reply on Jun 26, 2018 6:58 AM by Cad Admin

    Macro fails to run twice...Runtime Error 462

    Cad Admin

      The following beginning of mycode below runs fine the first time, but errors out on the second, if i open it up in the debugger, and close, it will run again once then not the second.  I get the proverbial  "Run-time error 462 : The remote server machine does not exist or is unavailable”


      Basically the code opens an excel doc that is identically named to the Solidworks file that is open.


      I've looked at a lot of articles on it here and other cites...  Ive tried the getobject vs createobject, late binding, and a bunch of other things.  My head is spinning.


      Ironically stepping through the code on the second run (i know it will fail), it WILL, open excel, it WILL open the file, it fails on the line xlSheet.Sort.SortFields.Add...

      Function excel_main()


          Dim SwApp                                   As SldWorks.SldWorks

          Dim xlApp                                   As Excel.Application

          Dim xlWorkbook                              As Excel.Workbook

          Dim xlSheet                                 As Excel.Worksheet


          Dim swModel                                 As SldWorks.ModelDoc2

          Dim swCustPropMgr                           As SldWorks.CustomPropertyManager

          Dim Fname                                   As String

          Dim xlOpen                                  As String


          Set SwApp = Application.SldWorks

          Set swModel = SwApp.ActiveDoc


          Set swCustPropMgr = swModel.Extension.CustomPropertyManager(Empty)

              Fname = swCustPropMgr.Get("Name")

              xlOpen = Fname + ".xls"


          On Error Resume Next

          Set xlApp = CreateObject("Excel.Application")

          On Error GoTo 0

          If xlApp Is Nothing Then Set xlApp = CreateObject("Word.Application")


          xlApp.Visible = True


          Set xlWorkbook = xlApp.Workbooks.Open(xlOpen)


          Set xlSheet = xlApp.Worksheets(Fname)


          xlSheet.Sort.SortFields.Add _

              Key:=Range("A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _