AnsweredAssumed Answered

[질문] Dxdesigner의 Part Number를 엑셀시트로 일괄 변경하기

Question asked by bkk.kim on Feb 11, 2014
Latest reply on Feb 12, 2014 by nick_hong

아래의 엑셀 시트의 Temp Code를 Formal 코드로 Dxdesigner를 Part number를 일괄변환하는 VBA코드를 작성하고자 합니다.

아래 VBA 코드를 보시면 Vdview 를 사용한 것이 문제인 것 같은데요.

Dim vdview As View라고 선언한 것이 맞나요??

전체적으로 코드 작성을 봐 주셨으면 합니다.

 

1.PNG

 

Sub DxdPNChg()

MsgBox "Start"

Dim vdapp As Application
Dim Vdview As View

' **** Use the code within the asterisk area for an open drawing ****
Set vdapp = Application

'Scripting.AddTypeLibrary ("ViewDraw.Application")
'Set vddoc = vdapp.ActiveDocument
Set Vdview = vdapp.ActiveView

' ************* End of open drawing code *********************


Dim i As Integer
Dim nRow As Integer
Dim Comp As Component

nRow = ActiveSheet.UsedRange.Rows.Count  ' 엑셀 시트의 맨 마지막 행의 숫자
MsgBox nRow

 
'배열 정의 데이타의 크기 입력
  Dim MDMCodeData(1, 186) As String   ' Dim MDMCodeData(1, nRow) As String  로 선언하면 에러 발생

 

'MDMCodeData(0, 1) = B3,MDMCodeData(1, 1) = C3
    For i = 0 To nRow - 183
        MDMCodeData(0, i) = Cells(i + 3, 2)
        MDMCodeData(1, i) = Cells(i + 3, 3)

        'Create a collection using the Query method, of the
        'components which are selected on the schematic
       
        For Each Comp In Vdview.Query(VDM_COMP, VD_ALL)
               
        'Identify the Data_Sheet attribute on the component
            Set PNumber = Comp.FindAttribute("Part Number")

                If Not PNumber Is Nothing Then
                    Dim bUpdate
                    bUpdate = False
 
                    If PNumber.Value = MDMCodeData(0, i) Then
                    PNumber.Value = MDMCodeData(1, i)
                    bUpdate = True
                    End If
                End If
        Next
   
    Next i

End Sub

Outcomes