I have written a macro to update the links in the cells of my design table with an external spreadsheet and now I want to add some code to break the current link of the Design Table to an Excel spreadsheet. I have tried using LinkToFile = False but this does not break the link, when I check the setting the "Link to file" box is still checked. Am I doing something wrong or is this a broken feature of the SolidWorks API? Here is the code I have and everything works except the LinkToFile = False.
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim newLinkPath As Variant
Dim currentLinks As Variant
Dim swModel As SldWorks.ModelDoc2
Dim designTable As SldWorks.designTable
Dim xlWS As Excel.Worksheet
Dim xlWB As Excel.Workbook
Dim link As String
Sub main()
Set swApp = _
Application.SldWorks
Set swModel = swApp.ActiveDoc
'Get the current working directory and add the file the link will be updated to
newLinkPath = CurDir$ & "\Layout.xlsx"
'Open Design Table
Set Part = swApp.ActiveDoc
Set designTable = Part.GetDesignTable
designTable.LinkToFile = False 'This is the code that doesn't work
designTable.Attach
Set xlWS = designTable.Worksheet
Set xlWB = designTable.Worksheet.Parent
'Get current links to external Excel Spreadsheet
currentLinks = xlWB.LinkSources(xlExcelLinks)
link = Join(currentLinks)
If StrComp(link, newLinkPath, vbTextCompare) = 0 Then
MsgBox "Links are up to date"
Else
'Update Design Table link to external spreadsheet
xlWB.ChangeLink link, newLinkPath, xlLinkTypeExcelLinks
End If
Part.CloseFamilyTable
End Sub