思路是將SW的BOM表導入到EXCEL,然后將EXCEL的數(shù)據(jù)(零件名+數(shù)量)寫入到字典,然后通過文件名來匹配到字典里存的數(shù)據(jù)(數(shù)量)寫入到零件的數(shù)量屬性。其中提示請輸入數(shù)據(jù)時需要粘帖數(shù)據(jù)進來。Myr = 500 '需人工設定。歡迎大家進行補充、使程序更智能。$ C* }& C1 S) k9 Q' H3 P
$ m- J; g& j5 J+ |/ X& b9 ?. W/ _
Sub main()2 h$ L+ b+ ^7 I- l
'打開EXCEL表格開始/ g' M3 J! b$ m9 q8 u5 |5 e" j
Dim ExcelSheet As Object1 Q0 y) C# S* p q% R8 \/ M
Set ExcelSheet = CreateObject("Excel.Sheet")# ^2 k3 U; P: V' k
ExcelSheet.Application.Visible = True
4 t# A7 [+ v- i' x% V v6 Y7 ]'結束
0 f1 l8 E1 t/ P: f
9 A, @0 d4 h; W4 t, @'填入數(shù)據(jù)開始/ X2 b" L- }8 F% T$ F' P
Dim d
+ Y3 `- S; f1 t7 F3 x: q8 QSet d = CreateObject("Scripting.Dictionary")
/ Y/ h( L! R# u( f |MsgBox "請輸入數(shù)據(jù)"9 J1 X- O5 _; Z( Z' L! m6 `5 M5 I
'結束4 C5 t" N; U% |* D. _" N
4 E) ^* n# a: w1 b% G'數(shù)據(jù)寫入字典開始
: b- D7 s- `, q& yDim Myr&3 ], B( H- L! w( H, L: Y- n. \ I
Myr = 500 '需人工設定/ J" c4 Y Y8 ]) U, s6 m
For i = 1 To Myr6 n% l5 V9 O: [; R
d(ExcelSheet.Application.Cells(i, 1).Value) = ExcelSheet.Application.Cells(i, 2).Value$ Z# i# i. K n/ C
Next
3 ]- J7 t% A" n0 A' D'結束
0 g- j4 ?; ^, t% Z/ f( |4 `% j) `. S& ^
'將字典數(shù)據(jù)逐個寫入到零件開始, X4 c- F E2 p5 D+ g
Dim swApp As Object( i) t4 C. c* I) J! y' p0 x
Dim Part As Object
. ~6 L2 I" x9 O& H. b7 k$ @5 h5 _Dim longstatus As Long, longwarnings As Long
' l# a' H# _6 g" a1 I+ @# oDim myPath$, myFile$2 n0 k( w* ]9 L6 H E6 \
9 g! E* y0 k; [* WSet swApp = _2 s, Q+ D- C, H6 y$ \% l* i: A
Application.SldWorks1 R8 v- {: H5 X! S! @9 f
myPath = "C:\Users\Administrator\Desktop\1\" '..........................重點:把文件路徑定義給變量
. C" E: t" W% X! ^/ [4 z1 dmyFile = Dir(myPath & "*.sldprt") '依次找尋指定路徑中的*.文件
, R# Z" \2 i$ a6 S9 ZDo While myFile <> ""$ a2 K' ~7 V, r& ?/ T7 i# H
Set Part = swApp.OpenDoc6(myPath & myFile, 1, 0, "", longstatus, longwarnings)7 Q. @; z k+ [
3 _7 H {- Z$ r9 J; P
'單個零件寫入數(shù)據(jù)開始( R; j; X0 @6 X1 |# x
'Dim swApp As Object1 A4 M9 r9 I# W) ?1 Z
Dim c As String; a; H9 ^% D2 c8 S/ @
Set swApp = Application.SldWorks/ X" B8 d1 d8 `. R
Set Part = swApp.ActiveDoc
, M3 ]+ w5 A% q D# cc = swApp.ActiveDoc.GetTitle() '零件名
0 Q3 [0 R! b/ O: U/ d+ x6 n5 U7 nblnretval = Part.AddCustomInfo3("", "數(shù)量", swCustomInfoText, d.Item(c))7 }9 C# p' g$ }) D
'單個零件寫入數(shù)據(jù)結束
6 ~) W4 t& N- g9 \! i/ m7 t$ ]. G$ J+ W l8 @% T
Part.Save
2 x6 e2 [) _% `; EswApp.CloseDoc myPath & myFile
: X2 h& T; ~7 l }4 ]8 qmyFile = Dir '找尋下一個*.文件
& ]0 W9 M' f& f! `Loop
+ U4 s( q: \$ f! }'將字典數(shù)據(jù)逐個寫入到零件結束6 a" L0 D/ L6 _( t) p& w. z
End Sub: L! M2 V l% h& w( S% ?
|