网上搜索到如下方法,暂未验证,谨慎使用
* x9 [* ~$ K( @$ ?+ P1、VBA编程法--- Sanjay Ramaswamy' p6 ]0 x/ X: F& f; A
! o+ w5 p, b$ I. x% G- w 0 M1 i3 y* Q7 a1 g3 p2 H
c% C, L; z. g用法就是新建一个空的Excel表格, 然后再VBA 编辑器里面复制下面的代码,然后add a reference to “Microsoft Excel 12.0 Object Library”。 运行即可。
|# y' Z( u; B' S N( w5 g; c0 ]+ q0 W8 D; t
, I) D6 G8 m7 H0 [8 s3 Q" a5 o
5 h; e+ o4 o1 l& c5 B6 sPublic Sub ExportParameters()8 w9 @3 C- a8 y) t% T t! f
) |2 e1 T+ b& n8 I3 w j7 f+ _6 J & h. w9 d6 f0 c) n
! s9 s: {$ c/ a; F Err.Clear
8 ~" g6 Q( O& O& p& S; s4 Y+ b- E, H+ Z6 n3 f, `" Y
Dim oExcel As Excel.Application
' e1 o# ~! h0 w4 R3 `* N. |+ J2 ^* q+ l. {6 m; O. [
Set oExcel = GetObject(, "Excel.Application")7 |7 h$ B) O' B* d9 R
I# n7 V) G: o9 b+ i, ^
If Err <> 0 Then# T2 M/ k [. K( A
5 |$ Q- b- @: i( u: G MsgBox "Excel must be running"
# R: n; q5 E+ }, F2 H0 e2 l u: z z' F; d
Exit Sub
" O% d1 z8 k6 a3 w& p5 X
, a/ C% K' D9 C& R3 T End If
* k1 j" g# a0 t* x0 F' g, S4 M) B9 U2 W. j) L) Z0 Z" Z
" P4 T7 c& ?- D% R
1 _( Q) E9 m0 ` Err.Clear
& X- A/ X) e! r, H; T8 K# E9 K( W* s3 D" \
Dim oSheet As Excel.WorkSheet
9 c- G% {/ V( M% X2 `9 K j9 c/ s% {& r. O( }, @) y) l
Set oSheet = oExcel.ActiveSheet5 ^2 ~7 `9 @' B2 E, z K/ f, v5 i9 i6 K
7 K m' w' y. D) P2 T, W4 k/ E If Err <> 0 Then
; h+ T( K0 w# D c4 ?3 q, `0 `9 Q. d8 r T
MsgBox "An empty must be active in Excel"% x2 V+ T2 [! f$ w
4 L4 |- E' C, I; Y6 q. Q) K9 r5 v
Exit Sub ]% I* N2 H" g c
1 g3 n$ U2 o. B+ F
End If( h# H: o4 p2 d; U6 v
2 N Y% g* @9 U r3 G I& }
8 X) e9 f* |: D7 a) `
# n1 K: s& r9 i( X Dim oDoc As Document! Q: M3 d' B- E) r
) i) y) A5 C! a5 u) f Set oDoc = ThisApplication.ActiveDocument+ r+ q' `+ @! T& Y1 n
) v& o0 q- Q% ~; q6 a
; ~2 P2 l% r+ c* `. |9 A4 m# w
& v3 r0 `6 L* q5 y) @ R5 O+ ]4 ? oSheet.Cells(1, 1).Value = "Name"
, s( G2 C# i: { q0 [' G
2 P7 @3 w8 F U: H. V* H oSheet.Cells(1, 2).Value = "Units"! H( V4 Z+ R' X/ j% @$ y, e
' |6 X! [8 E& M0 Z+ V1 t# {4 y
oSheet.Cells(1, 3).Value = "Equation"
2 z9 ?: V3 Z: Z i( D6 k& Y
' U, n+ ~, c& L oSheet.Cells(1, 4).Value = "Value (cm)"
5 R0 u% W# v! ^5 d
( Y' T' W& `% S( t) s4 A [
7 O: g5 K9 s9 ~( |9 t6 }2 @$ L
6 f8 p9 M, S. W' A oSheet.Cells(1, 1).HorizontalAlignment = Excel.xlCenter
. N5 n9 _. P- R0 s. `/ _5 u) {, b( c
oSheet.Cells(1, 2).HorizontalAlignment = Excel.xlCenter1 z/ o. r# U. Q. m, J2 M" T
7 c+ k0 i. y: h v) t oSheet.Cells(1, 3).HorizontalAlignment = Excel.xlCenter5 W; g" M$ X' b" Q
) w% n% P+ y, C. i8 B' j/ s oSheet.Cells(1, 4).HorizontalAlignment = Excel.xlCenter
R* b/ ^- n4 w; j0 J5 s( E8 u# G3 B# x* |
oSheet.Cells(1, 1).Font.Bold = True
1 ]5 Y' g) x9 e/ x8 y* @( Q" r+ L8 H/ F
oSheet.Cells(1, 2).Font.Bold = True0 j' T$ l3 q( [) ^
! T9 L' X$ Z; Z/ Y6 C! E8 s& B
oSheet.Cells(1, 3).Font.Bold = True. }0 B% I" ]1 q/ T
5 a/ r4 D" @( u: ?8 y& p! X
oSheet.Cells(1, 4).Font.Bold = True/ T. T* N Y1 Q$ \- O9 N! t$ g
6 n' \8 y4 o% X5 c$ L+ }) h
5 c- v) C2 J+ p7 G. |$ q
$ D# ?4 A+ P; }' |: V oSheet.Cells(3, 1).Value = "Model Parameters"4 F( J4 C! C+ ^( Z6 j& U9 ]
: C, [+ Z0 k1 R2 }; v9 Q0 Z: r
oSheet.Cells(3, 1).Font.Bold = True) O" W! ~8 a& v. B3 Y2 q- d
! G& W0 M9 B% W7 s% R" g
% J8 ~$ K8 J0 u
Y$ r/ \! n8 k( w1 l1 Z( X Dim i As Long
) c x+ b7 e% O/ P% V. M2 R6 N$ r& u/ K l# M6 J) G" s
i = 4: r# f6 m5 k0 U
4 G/ `: O3 j) N! t4 U
Dim oModelParam As ModelParameter
5 ]% l9 O# C) N7 ?& B
1 e# g2 b( T' |' c) a7 X For Each oModelParam In oDoc.ComponentDefinition.Parameters.ModelParameters
. }5 d" F% }1 p& ?2 l% U8 B8 ]: W1 _. {+ U; L5 ^
3 A* Q7 e( A/ v
. A5 w% Z! t' ^6 x4 ^' U oSheet.Cells(i, 1).Value = oModelParam.Name* @/ b7 q0 D; r/ b; X: [2 P2 l
" S$ E! {4 k4 A. o8 j4 `! M oSheet.Cells(i, 2).Value = oModelParam.Units
( R7 Q/ j5 u; J+ W5 H9 y2 Z( W' B& {' U2 g
oSheet.Cells(i, 3).Value = oModelParam.Expression2 A6 y0 Y$ J. z" [. C) J
; K, F1 |. |, i( L
oSheet.Cells(i, 4).Value = oModelParam.Value: H) V) x1 d+ o/ }' x/ c5 m* ~# d
6 q0 d: V7 @1 R" O$ A7 ~. a2 O
2 U( L; D9 [) U2 g
! b) P# }- N* ^; k* ^, r9 ^ i = i + 11 |5 D8 ]" D& q
" b8 b' c% J7 u# M) l2 v: o+ Z! X
Next k( P9 u( J" d% b
) t0 U4 @- ^6 v( b) w
# m( [- t7 ?/ v! O# s% R1 y( q8 k8 P
8 Z0 U4 d" W3 i2 O: B7 W
i = i + 1
- O. C# J: v% s" c$ M4 Z8 e7 J7 t1 W8 L; N
oSheet.Cells(i, 1).Value = "Reference Parameters" H* q @& Q3 u7 v' x( k
+ ?5 y- b3 g% g! u$ a) [
oSheet.Cells(i, 1).Font.Bold = True- U) h2 _. B7 f; ~4 X* W
" t8 c' U+ s0 n6 G9 ]8 ?* Z$ r
i = i + 1
5 x6 X6 ^" I5 {( c7 S& {0 b6 ?7 V
0 \. }6 g" L% f8 ~( ~* f* p
6 @7 O+ l7 S" ~6 T3 o- R$ d/ A
Dim oRefParam As ReferenceParameter
o! L1 u- {, U" T( W' \* S# T4 ?7 k" l1 p3 m' r4 X
For Each oRefParam In oDoc.ComponentDefinition.Parameters.ReferenceParameters4 D+ t8 ]9 v5 N$ b7 K- ]) O# J
% }. g! o; H& [0 o6 O
: {# C' p7 L3 C* I2 t3 f. U7 c
5 q2 ?, `+ Q O7 s! _ oSheet.Cells(i, 1).Value = oRefParam.Name" V5 v; j3 k q( ^' d, g; e3 M
- s- d* p. \& O3 y oSheet.Cells(i, 2).Value = oRefParam.Units$ i- g8 _0 i' R. B7 I! F- r( u
7 a. Q5 ^. }! w
oSheet.Cells(i, 3).Value = oRefParam.Expression
2 T S( |, h0 h" ?" m- n- L/ b0 ^) U+ ~, y8 d
oSheet.Cells(i, 4).Value = oRefParam.Value" V0 P. s6 S8 D7 g8 D2 T# R
1 d: u1 l7 d5 \/ F7 U3 n3 O
; k5 x! j) S+ q. K/ H1 N0 Z4 i9 \7 m$ t* j3 `9 w
i = i + 1
; f! z, ?0 E5 R6 |- l( A+ t$ E
9 G" a& w$ u L* u8 Z1 x5 A Next
1 P2 Z+ [' P: c1 `; A
: a* k% Q3 x* n; E( \7 ` # {- U5 ^5 W$ E6 `& O" u2 g
7 z& F7 Q) P1 o/ l" y& c# I
i = i + 1
& s( K6 B0 t, H. Q/ ]- Z5 D; c- U. u# H! j7 t+ \
oSheet.Cells(i, 1).Value = "User Parameters"
m) g/ R% Z1 A! S+ n* Y
" m" t$ s) z$ I* I; p6 }* k oSheet.Cells(i, 1).Font.Bold = True
; Y/ N6 S- ]0 |9 M" m/ ?, {& D, i; x: ~+ }& B! h/ Z
i = i + 1
$ b9 o- d' v! E9 K$ s
# M# c$ x H5 }5 Q
- ]9 Y9 Q5 I8 I6 ]( m K0 k' Q
% b- t7 T4 t# A+ J1 ~8 ]% X Dim oUserParam As UserParameter4 C) ?& Q$ ~, u
" l% k$ @& s4 V( L, x y For Each oUserParam In oDoc.ComponentDefinition.Parameters.UserParameters
* U" @. v- N: R
$ z8 P1 S3 u/ x/ S8 p( N
9 F/ b: ]' q1 v+ W/ h, x
$ J" l4 V, H5 {& E H8 | oSheet.Cells(i, 1).Value = oUserParam.Name+ v$ w+ g$ J4 L0 {
( u* H, Q" Q" \& M oSheet.Cells(i, 2).Value = oUserParam.Units9 l7 f0 R5 f! k
# C5 b1 Y) q- X$ H6 M! o) p
oSheet.Cells(i, 3).Value = oUserParam.Expression: n! R( F/ X; |4 h
% k; O8 y4 t& _; j7 S
oSheet.Cells(i, 4).Value = oUserParam.Value
5 y$ O. X7 {5 X; u% E1 {$ s" l6 J* L# i: `
/ `( o" P' H- C
% t( _- c' ^; I# a6 B) t
i = i + 1$ Y9 L6 h8 |/ S2 P) n4 Y
- Z7 B% H- j, Q) d* _) q" h Next. k- v& Y) k% c8 y: F
, ^! r& W. s9 ?$ V
1 W, i7 a# i4 q+ j/ a& `% s
8 f, ~( d- B/ S1 j2 A9 a H Dim oParamTable As ParameterTable
. D; {: J3 I. r) \' ~; w) I5 [
2 ]- V) S4 H4 N7 M! v For Each oParamTable In oDoc.ComponentDefinition.Parameters.ParameterTables6 j' t9 n$ u- Z
# j, M- f% ^* O
$ W0 x8 g' L/ f M& n8 v: z
, f0 r5 \; r. k; g i = i + 15 Q3 j9 Z" u. o' o5 s6 [* N$ K4 h$ ~
' @, Q0 J. K W, V% `% M
oSheet.Cells(i, 1).Value = "Table Parameters - " & oParamTable.FileName
1 O& A6 f* I6 N" `! h. A7 h) T4 _8 f: ~8 X2 C
oSheet.Cells(i, 1).Font.Bold = True- X' Z( R! V- L! m# I
U/ s, ~# P( W2 J6 N0 k" V* s i = i + 1
8 C# `& K' W, c* C# r4 b: v& o3 L9 B" H/ h
( |2 M% b# k3 n6 i$ q+ Q7 m( T. r( E/ z
Dim oTableParam As TableParameter
& S6 T% k0 }: L2 M( H8 ^4 n+ V a
For Each oTableParam In oParamTable.TableParameters
9 y3 |# A: ?3 ~+ J8 V1 M0 U7 Z7 W! R5 R, k9 R9 d3 ]; i6 x3 d
9 ?, C z0 L( Y, }8 S/ g2 m2 [9 n( E* I
% A7 P+ q( |& h9 T( P oSheet.Cells(i, 1).Value = oTableParam.Name
p& ]7 v+ C- o( o# v1 ]& i+ ?/ N# ~; S# o! t3 n
oSheet.Cells(i, 2).Value = oTableParam.Units
R1 K1 L! z6 X' _4 ]! I: {" _5 A8 C, q) }% M) D- v# t
oSheet.Cells(i, 3).Value = oTableParam.Expression
: {) J( ]) X9 M \/ R% ^' |2 `/ ]. g1 ?) C. A/ c) L. K
oSheet.Cells(i, 4).Value = oTableParam.Value
( X1 @$ V0 E5 G1 P9 F. n( y4 k& s4 y1 Q
6 e5 q; M, A) Z2 \5 Y, o, A# ?9 I
# T m" C# b! f i = i + 1, S% B" d) v8 e& o# Q
8 g3 o/ t1 T% u0 s Next
5 x* j J: D! s1 f* s7 }8 n) F3 D c2 f* X
Next
' C/ H F0 v" {$ w! K
* N. b2 a+ z$ N6 M* d# S
7 \) R/ @' q5 G3 K8 Y* D
+ z( Z, {0 Q2 b8 [% T* f: s& k% K Dim oDerivedParamTable As DerivedParameterTable
3 @2 d% \2 t, s g# M6 e( g6 Y$ ?7 M$ e! y( p. |
For Each oDerivedParamTable In oDoc.ComponentDefinition.Parameters.DerivedParameterTables
' I( u# s* ~0 `+ w& m, v
9 D* d( u, h6 `3 e+ |4 A5 b ) U8 J: h+ o3 V% ^. ~* _. T
) M* m' u2 n6 K) f$ l& `. N3 a i = i + 16 o: D+ O2 @" h) q0 ?
M6 T: H7 u7 c* _5 a, W oSheet.Cells(i, 1).Value = "Derived Parameters - " & oDerivedParamTable.ReferencedDocumentDescriptor.FullDocumentName7 M6 M5 Z" F* w. h7 a- k, ^" M3 Z
% [% H$ n/ L& p4 e5 X
oSheet.Cells(i, 1).Font.Bold = True b+ d1 H/ k: F; A( y* @ C
4 ]5 a. |0 w( d% P) z i = i + 1' i% v5 C1 w" v6 S C$ L
( g+ R" n2 d- Q8 }, u4 a
$ ]; u6 @/ U* c7 x2 L' }: m/ i- l& O( ]# `( h
Dim oDerivedParam As DerivedParameter- t( [$ \$ d: c$ z* V( G
( q5 Z* G. Q2 K7 z2 p/ y
For Each oDerivedParam In oDerivedParamTable.DerivedParameters, _ ?) c' y' m b$ m6 ^
& a4 n) p9 W/ f: R! g8 A/ r! V 7 Y0 H3 K. Z5 C& c4 I9 `
3 f5 Y. ^6 @, n) L/ M
oSheet.Cells(i, 1).Value = oDerivedParam.Name8 E; c* l. x: v D
" X, X! ]0 N J+ O7 f oSheet.Cells(i, 2).Value = oDerivedParam.Units
/ V0 q% `" n0 d$ D2 h6 Z/ j* {) D
1 k: B5 u; C; d: j/ n3 [ oSheet.Cells(i, 3).Value = oDerivedParam.Expression: _# f7 G3 j+ h. k( C7 f
+ K( r- R4 ]+ R6 D& p% ^ oSheet.Cells(i, 4).Value = oDerivedParam.Value- ?% O0 T; N0 \# {* G2 X
. f4 Q$ z7 C, _/ E: P
& Z3 z$ g1 C# i/ `; G9 G y. _) f/ M
i = i + 18 W6 y C( {1 k. g1 Y+ t" M4 z
+ V2 ~3 W: F R2 Q) ?: [
Next
' ~. a M' q/ f% L
7 `' Y. L4 m2 i. Q Next
* T- C# z N% Z( s: n) R5 [. `; f4 ?1 V9 z3 U, A, O
End Sub+ e+ V+ g4 c0 `, y, }7 v
8 {/ A7 w/ R5 V& L ]; n3 Y
: p& |* |5 @: i1 D
! r* T' e, A+ V0 l3 T$ O/ R7 i
r: O7 B+ x9 R- {& ^& B9 e* f, |0 z+ I" ?# f1 }0 B9 S# [
第二个方法--- iLogic方法 , 感谢xiaodong Liang4 z: {1 `* J) }! ^7 w5 k3 x8 t
& d P+ E; Z6 I0 v8 H# ? ) L- g$ y9 I( R# X4 E
5 s$ C5 R0 k) X A# y
用法,新建一个test.xlsx在C盘下面,然后复制下面内容到一个规则里面。运行即可。
: g) F) i! G: ^: L( S2 m1 K; H& ?. F, T4 v# F
6 j7 A# g/ u+ R4 L
8 o2 H! b% q6 I9 @+ | # s `, P# ]/ j: E6 N
0 @4 w, W5 J4 i# U
'Open Excel1 Z9 `0 x: q' R* v/ T0 J
GoExcel.Open("c:test.xlsx", "Sheet1") n$ r. S' H$ ]4 t7 k! b/ N9 ]4 t
# Y2 E( ~! t% S3 d, r) q7 }6 O 'Title of column! ?$ R& c0 ]3 |2 a( K4 S+ j
GoExcel.CellValue("c:test.xlsx", "Sheet1", "A1") = "Name"
7 P; ^! T2 j( g8 w GoExcel.CellValue("c:test.xlsx", "Sheet1", "B1") = "Units"# `; K' Z$ b6 {. ^; i2 K
GoExcel.CellValue("c:test.xlsx", "Sheet1", "C1") = "Equation", r9 X# [' @! H& N; ~ Q, O, G
GoExcel.CellValue("c:test.xlsx", "Sheet1", "D1") = "Value (cm)" z3 t& d3 G/ r" [2 X
* r( ]/ O" q. r9 C 'Model Parameters5 D. E$ o" Z4 g
Dim oCurrentIndex As Long = 3
5 t" q' }8 f- J4 }. | GoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex)) = "Model Parameters"
+ V3 L* k2 g$ I( F
4 k8 f1 O2 I( E9 X Dim index As Long
0 e" ] R# I) e4 D Dim oIndexStr As String
- k. Y& l3 s2 \- } % [+ G- V! d2 P6 M2 I
Dim oModelPs" p9 ]& r1 W. e% j6 ? o" c
oModelPs = ThisApplication.Activedocument.ComponentDefinition.Parameters.ModelParameters6 ]& q# _0 g7 j$ h
/ Q- W( t1 Q1 p# K- g& t. p" lFor index = 1 To oModelPs.Count& J! J4 U5 h8 n% c. \0 S
! F% G; v8 `2 k3 ]- b6 n
" u- E8 p- [& N+ X oIndexStr = "A" & CStr(oCurrentIndex + index)
: u+ u! i) _/ M: v! N; o/ w7 [) G: D( i GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oModelPs(index).Name0 Q$ M$ p- @$ [% G+ D
# U0 a3 a) s8 p! D) }
oIndexStr = "B" & CStr(oCurrentIndex + index) : |/ z7 k" k6 g8 D
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oModelPs(index).Units
$ e. \8 ]( a1 t) q. S: h1 C+ X
6 {# }/ M* y( m, e: Y' ]4 L oIndexStr = "C" & CStr(oCurrentIndex + index) 9 V$ p; r: j& s- i
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oModelPs(index).Expression
4 ] J8 g: @8 W ( |; G# G9 e. I5 U* ]5 U1 u+ F! m
oIndexStr = "D" & CStr(oCurrentIndex + index)
) x/ a y& i3 W! j GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oModelPs(index).Value1 a J8 Y" n+ |
Next
0 |, ~6 o' ]# t. T# U* {$ c" |5 N7 p# F3 |/ `: W8 J
'Reference Parameters. h" u- u/ {9 V0 ~4 }0 u
oCurrentIndex = oCurrentIndex + oModelPs.Count + 14 C9 z2 q. l, G- @
GoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex) ) = "Reference Parameters"
( ]# `. r9 P; F1 u8 J% A % G7 _6 u' P1 A6 m3 Y1 {
Dim oRefPs
/ [2 t( b& o. q* G( f. aoRefPs = ThisApplication.Activedocument.ComponentDefinition.Parameters.ReferenceParameters, w2 L: D1 w7 p' ]9 c9 Z. M8 l
; {8 w8 `1 u' ~3 c. \3 l0 ?: a
For index = 1 To oRefPs.Count
5 r) Z5 O# G! _) R: S
& K. H- s" m# m1 Q oIndexStr = "A" & CStr(oCurrentIndex + index)
+ b6 h# M n3 ?' X2 O GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oRefPs(index).Name
6 `3 ^$ o) i E) C8 T 9 |$ E5 M7 P6 B* x5 [
oIndexStr = "B" & CStr(oCurrentIndex + index)
/ v7 x7 w* M- ]8 B8 \3 k) @7 [5 e GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oRefPs(index).Units
' z S) M/ a" _6 a 4 G4 z. F& x, z" M
oIndexStr = "C" & CStr(oCurrentIndex + index) 0 D9 T( w; F+ ?% s- F
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oRefPs(index).Expression
+ R4 b$ q% l- `+ u" W' K, C8 _" _3 E
: K4 j5 Q- p2 R. Z- b3 Z2 | oIndexStr = "D" & CStr(oCurrentIndex + index)
# o. Y' B, O& L% q i8 g) p5 z- R GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oRefPs(index).Value
1 W; J& g( Y$ p& X+ P) a. sNext, M6 y6 {, H8 _6 W1 P |
- Q5 j t6 u, |2 E* O
'User Parameters
+ E1 _+ Q: Y \6 G& t. u' ToCurrentIndex = oCurrentIndex + oRefPs.Count + 1
9 B+ O8 Y3 t( IGoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex) ) = "User Parameters"
5 }" M5 D" n$ `& Y
3 _% T `* N1 Y; j Dim oUserPs: v" p% ?/ X+ [# W& H
oUserPs = ThisApplication.Activedocument.ComponentDefinition.Parameters.UserParameters$ Z: @2 N9 ~7 o- r* r$ q1 h2 O
5 L( Q8 ^4 J( `. f1 |For index = 1 To oUserPs.Count
1 R o4 A, N# e- J0 c% E$ {3 S; f$ ?7 n/ o6 N( E2 j
oIndexStr = "A" & CStr(oCurrentIndex + index)! m) |% k( ]" y: W7 _: u
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oUserPs(index).Name) \4 W8 g k9 R& J' |5 N
2 o5 i) `( X3 N2 Q- k1 V( F, g) I" ^ oIndexStr = "B" & CStr(oCurrentIndex + index)
2 s# Y4 Z. b a9 P GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oUserPs(index).Units# Q+ C0 V9 F- Q. ~6 p& M+ x9 k
+ \6 W2 `3 G. H5 O5 n1 P' _7 N% d oIndexStr = "C" & CStr(oCurrentIndex + index)
8 p1 p, x; @! D+ g+ W GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oUserPs(index).Expression. |) _$ Y0 X3 W w2 q% W, b3 K
5 |; f: ~! q3 N+ C6 Y
oIndexStr = "D" & CStr(oCurrentIndex + index) 3 f: h4 t0 L& ~1 d
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oUserPs(index).Value
9 M. V5 A! F0 I0 s YNext, G1 |+ u) O5 `% z8 m# m3 |( U
* b+ ~5 h/ G# Z' g* q7 b
& v, X- d7 [ R$ s1 S+ M! u'ParameterTables% j6 [1 x" M$ ^( F
oCurrentIndex = oCurrentIndex +oUserPs.Count + 1) @% a- I- k: R& Y2 w( l
GoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex) ) = "Parameter Table"& I& j) t" P- O0 @& R! S
0 i# ]+ i- W" @" d& l3 R1 qDim oPTables
- N C9 S2 O5 s4 RoPTables = ThisApplication.Activedocument.ComponentDefinition.Parameters.ParameterTables
& E& s5 d( F- a; \. m* ?
! q2 w% T! Q1 l4 m; k1 k) S" gFor i = 1 To oPTables.Count & F; t& \9 n& u$ R$ ]+ A
* U" _/ a+ }! k' u4 Q) B, f
Dim oEachPTable
7 M% O9 {, z1 S; @4 K oEachPTable = oPTables(i)
$ O$ b0 ?1 s, }3 U$ Z# l( `0 S # l9 u( v2 Y1 V5 x
Dim oPTableParas
+ h+ g0 h W$ C) e oPTableParas = oEachPTable.TableParameters
- T# r: Q- V& @" V* _, a# A ' n2 m, g+ a) z# U" a; q
oCurrentIndex = oCurrentIndex + 1/ Y p4 G1 m! E, [ ?- f
GoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex) ) = "Table Parameters - " & oEachPTable.FileName& Q% J$ P) n5 H# X
, h; h3 L Q- S, R3 g d1 y
For index = 1 To oPTableParas.Count
" R' V; I, c% z' M8 l
2 R: a, ?, I. J9 K- U Dim oEachP7 m3 ?% w8 o7 X M M: t2 d
oEachP = oPTableParas(index)
' }; p0 `. J3 P6 R9 j m
, t# u0 W! {3 w9 f X J oIndexStr = "A" & CStr(index + oCurrentIndex)
2 P; t- e6 ^6 V E7 K9 H. K7 ] GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachP.Name
% q! d# A1 n7 T2 B, Q" H0 j ( E/ p6 Y8 T) p# G) G3 X
oIndexStr = "B" & CStr(index +oCurrentIndex)
- p1 P+ ?& O* W! E0 G0 _; j* E; ` ` GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachP.Units
) ^" s1 m2 j6 `, M4 v- K+ a 1 a7 W) A% m- G
oIndexStr = "C" & CStr(index +oCurrentIndex)
: r, ?: _* q5 X% T GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachP.Expression
2 u0 Q' P) z6 S$ u1 B
/ a2 i. n, X. z& q. J! j oIndexStr = "D" & CStr(index + oCurrentIndex) # k. x$ o5 M0 l
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachP.Value , A$ }4 \: [- H$ A# \4 _' N1 e
Next1 j9 {; A& w) c O; n/ }
% U+ _. \5 T j: o; a( b oCurrentIndex = oCurrentIndex + oPTableParas.Count
% l, {/ p& f. i t% b& v' O
( t9 _7 B5 g- U# ^Next0 @. A: i D) p& X5 l0 x1 p
& ^ X( M! f7 |' O5 N: b
'Derived Parameter Table
4 c6 ]6 D4 s; UoCurrentIndex = oCurrentIndex + 1
2 f) R3 ^- ~6 ^8 q1 d6 AGoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex) ) = "Derived Parameter Table"
( a5 M9 q, v# a% d0 E# X/ M% K) J
+ @- A4 X9 E/ J- n) p. c6 m Dim oDTables
( j. |5 y9 l1 I$ V0 s& y$ VoDTables = ThisApplication.Activedocument.ComponentDefinition.Parameters.DerivedParameterTables. h8 K6 S; w# U H
0 z- P. r) R0 I ~1 Q# [! e
For i = 1 To oDTables.Count
$ B o4 Y5 b3 h V; w% A, d
, T+ p' T! k0 m) T/ L Dim oEachDTable
* R+ z% z; x$ M+ N oEachDTable = oDTables(i)
/ @1 a: K4 b7 r * `2 D0 N5 ~$ D `
Dim oDTableParas
" X; v% g- z2 j* \ oDTableParas = oEachDTable.DerivedParameters
& `, \: a4 Q+ A" c3 e) Y: J
/ \/ a3 l# W3 G* ]$ I oCurrentIndex = oCurrentIndex + 1) g# v" c+ t5 a/ z3 R6 V
GoExcel.CellValue("c:test.xlsx", "Sheet1", "A" & CStr(oCurrentIndex) ) = "Table Parameters - " & oEachDTable.ReferencedDocumentDescriptor.FullDocumentName
& g3 y# q5 M1 z* E 2 N: E ]; i* O. A! V- F. H) I
For index = 1 To oDTableParas.Count
* {# c$ g+ x) f- G0 h 5 X! q# @$ Q: X
Dim oEachDP* W- P5 `0 _. `+ X7 D& w- [
oEachDP = oDTableParas(index)3 t3 w) m- \$ ]5 N3 J# f
1 o% F+ i2 q+ s0 t2 t6 g% l) O oIndexStr = "A" & CStr(index + oCurrentIndex)6 u) C0 H7 V" h: S
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachDP.Name* l" b0 X$ W8 E; |3 c( Y) ]
' H Y$ M w6 s* J# \ oIndexStr = "B" & CStr(index +oCurrentIndex) 4 f& ?! Q7 b. ~) {! q: W$ u
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachDP.Units
3 ^+ U6 h( q# L & w. X# }+ I* d( }' g# `
oIndexStr = "C" & CStr(index +oCurrentIndex) ! t8 c$ F! U: a5 a- t1 w
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachDP.Expression
1 Z. t- D. q- b, R
- `" K8 D: {. E oIndexStr = "D" & CStr(index + oCurrentIndex) 6 f9 Q7 v9 G$ h4 _1 ^
GoExcel.CellValue("c:test.xlsx", "Sheet1", oIndexStr) = oEachDP.Value
" Q0 Y j, x. |8 m Next
' v/ k/ {9 D! p' v4 c2 ?! |1 ~, i+ k oCurrentIndex = oCurrentIndex + oDTableParas.Count
m1 }/ g$ r. ~: w1 q, K" ?
/ U9 K7 m( _, C* m1 [Next
8 A/ |& f4 t6 O 1 S& R. W. F% j5 ~$ v
* o5 V2 U! `0 h' ^- x * N ]2 e" H _$ [+ D0 J8 e1 Z
GoExcel.Save
9 Q* C1 u+ L; N0 SGoExcel.Close |