|
发表于 2008-7-19 00:01:06
|
显示全部楼层
来自: 中国
回复 10# 的帖子
可以用二次开发功能编程提取。以下是VBA例程:( w. a% Q) P: C& J7 l
: i+ y: L! u& | y& z" ^. r1 u% Q
-----------------------------------------------------------
$ S1 P( I M* Z. F. N) O5 I: nSub TQ()$ h5 P- _) A* r) [! h/ }
On Error Resume Next
% u* W, K/ A1 L+ b# B y3 N Dim I As Integer) b1 B+ \% t+ B/ k
Dim E As Excel.Application, B As Workbook, S As Worksheet9 J+ q; T- L! \% l+ k. F
Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant; R, V) k+ d8 ~; s/ f O9 l
'下面定义选择集过滤器列表为多行文字或单行文字6 A3 h- h1 A3 H0 S
FT(0) = -4: FD(0) = "<or"
8 ]% r+ \1 i# n- D3 k FT(1) = 0: FD(1) = "mtext"( d% R4 A5 T; A' F" R
FT(2) = 0: FD(2) = "text"
1 z8 m, t( A8 b9 ^) K& @ FT(3) = -4: FD(3) = "or>"+ e# g8 @6 e1 }8 ?8 T; ?' S! _- z
'创建选择集
# G& {. C& k2 r/ y, d Set SS = ThisDrawing.SelectionSets.Add("SS")
, n* g, u. c/ C. Y2 t) q6 u '在屏幕上选择多行文字或单行文字对象, G! ]1 U7 i) _2 y
SS.SelectOnScreen FT, FD
9 V9 q8 H& ]8 }7 U) R; @7 Q: j '如果选择集不为空则运行以下代码( M0 V' A' s5 m {$ _8 U% h$ b9 T
If SS.Count > 0 Then
$ ~! ?* l" F* a$ L+ f+ o( J '运行EXCEL程序
1 g+ m, y) ?3 \ Set E = New Excel.Application. D/ N: x, N8 Z- I* {; D, W9 [; R
'在EXCEL中插入工作薄
" U3 }- \* W" d Set B = E.Workbooks.Add
# ^, m4 H( n m! ?8 X1 @ '定义工作表
: E; s! K, z- N Set S = B.ActiveSheet
8 b# G: V* D1 T: h$ V '显示EXCEL程序
! A1 u4 `$ ^! K; s* { P8 q E.Visible = True/ Q& \. B/ M1 S$ a! o( \" I
'遍历选择集并处理被选中的单行文字或多行文字对象
" G; s( R8 D4 i2 }1 I For Each T In SS
+ s+ t( I* N: c2 n H I = I + 1
2 x+ o8 G& d3 Z8 a '把单行文字或多行文字的内容写入表格
r3 V2 O [# z) w4 Y& d. V& k, X '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格
' s. G4 ^- w$ O: ]) ?8 ` S.Cells(I, 1).Value = T.TextString
! l* o% p; U) i% `! Q* I Next
! W$ I# s* Y: Q2 q8 _ End If3 V" \- v/ [+ E- s I7 w6 S8 L6 L) O
SS.Delete '删除用过的选择集# o, C( |0 h8 l6 C; k# M* Q% _
End Sub! d3 k3 X" c% `; v
-----------------------------------------------------------------: d+ P5 H2 i4 Q8 W' i
U8 A( d+ e; _“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。
) o, G* y% Y3 \% o9 a9 c" s8 P
$ {' F4 _8 {7 n' k3 I[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ] |
评分
-
查看全部评分
|