ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
BVBen Van Der Linde16/04/2018

Hi Soildworks Forum,

Can someone please help me with this code.  The code:

1. calls a custom property

2. looks up the custom property value in a excel table with Vlookup

3. Export custom properties (have not written this part of code yet)

Unfortunately I cannot get past the Vlookup section and I don't understand why.  Can someone please help me understand why I keep getting a run-time error '438' Object doesn't support this property or method.

Thank you in advanced for the help

Option Explicit

Dim swApp As SldWorks.SldWorks

Dim excApp As Excel.Application

Dim excWorkbook As Excel.Workbook

Dim swModel As SldWorks.ModelDoc2

Dim swCustPrpMgr As SldWorks.CustomPropertyManager

Sub main()

'Soildworks set

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

'stop screen updating

'Application.ScreenUpdating = False

Dim sDriverCode1 As String 'Driver code

Dim rValOut As String 'Unsure

Dim bool As Boolean 'unsure

'current value of custom propery DRIVER

    Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")

    bool = swCustPrpMgr.Get3("Driver", True, sDriverCode1, rValOut)

  

    Debug.Print "Driver Code:              " & sDriverCode1

    Debug.Print "Evaluated value:          " & rValOut

    Debug.Print "Up-to-date data:          " & bool

  

'excel set

Set excApp = GetObject(, "Excel.Application")

Dim sDriverPath As String

Dim sDriverExc As String

Dim sDriverFile As String

Dim sDriverSheet As String

Dim sDriverRange As String

sDriverPath = "P:\Path\"

sDriverFile = "Driver.xlsx"

sDriverSheet = "Sheet1"

sDriverRange = "A1:H1000"

'open Driver Excel

Set excWorkbook = excApp.Workbooks.Open(sDriverPath & sDriverFile)

'On Error GoTo MyErrorHandler

'Vlookup of file

Dim sManfact As String

sManfact = excApp.WorksheetFuction.Vlookup(sDriverCode1, excWorkbook.Sheets(sDriverSheet).Range(sDriverRange), 2, False)

Debug.Print sManfact

Exit Sub

MyErrorHandler:

    If Err.Number = 1004 Then

        MsgBox "ItemNumber Not Present in the table."

    End If

End Sub