明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3764|回复: 11

vb如何提取“块参考”属性中的“A”对应值到EXCEL

[复制链接]
发表于 2012-10-10 07:35:44 | 显示全部楼层 |阅读模式
请各位高手不吝赐教:
如何用VB提取“块参考”属性中的“A”对应值到EXCEL,先谢谢了!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

本帖被以下淘专辑推荐:

发表于 2012-10-10 12:07:40 | 显示全部楼层
  1.     Dim myAcadApp As AutoCAD.AcadApplication, SS As AcadSelectionSet, FT(0) As Integer, FD(0) As Variant
  2.     Dim BF As AcadBlockReference, AF As AcadAttributeReference, V1 As Variant, V2 As Variant
  3.     On Error Resume Next
  4.     Set myAcadApp = GetObject(, "Autocad.Application")
  5.     If Err <> 0 Then
  6.         Err.Clear
  7.         Set myAcadApp = CreateObject("Autocad.Application")
  8.         If Err Then
  9.             MsgBox Err.Number & ":" & Err.Description
  10.             Exit Sub
  11.         End If
  12.     End If
  13.     With myAcadApp
  14.         .WindowState = acMax
  15.         .Visible = True
  16.         AppActivate "AUTOCAD"
  17.         With .ActiveDocument
  18.             Set SS = .SelectionSets.Add("SS")
  19.             FT(0) = 0
  20.             FD(0) = "INSERT"
  21.             SS.SelectOnScreen FT, FD
  22.             For Each BF In SS
  23.                 V1 = BF.GetAttributes
  24.                 For Each V2 In V1
  25.                     Set AF = V2
  26.                     If AF.TagString = "A" Then
  27.                         '此处把 AF.TextString 属性填入EXCEL单元格
  28.                     End If
  29.                 Next
  30.             Next
  31.             SS.Delete
  32.         End With
  33.     End With
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2012-10-10 07:37:44 | 显示全部楼层
补充一下:一次可以选一个或多个块,分别输出到EXCEL
发表于 2012-10-10 08:19:01 | 显示全部楼层
大体分两步吧。1.读取块属性。2输出文本到excel。楼主可搜寻这两方面的帖子学习。祝顺利。
 楼主| 发表于 2012-10-10 08:53:09 | 显示全部楼层
mikewolf2k 发表于 2012-10-10 08:19
大体分两步吧。1.读取块属性。2输出文本到excel。楼主可搜寻这两方面的帖子学习。祝顺利。

第一步纠结两天了都没有成功,请帮助解决一下,十分感谢
发表于 2012-10-10 12:10:32 | 显示全部楼层
  1. Sub aa()
  2. Dim bobj As AcadBlockReference
  3. Dim a
  4. Dim arr()
  5. Dim ss As AcadSelectionSet
  6. Dim filtertype(0 To 0) As Integer
  7. Dim filterdata(0 To 0) As Variant
  8. Dim xls As Excel.Application
  9. Set xls = New Excel.Application
  10. Set ss = ThisDrawing.SelectionSets.Add(CStr(Rnd))
  11. filtertype(0) = 0
  12. filterdata(0) = "insert"
  13. ss.SelectOnScreen filtertype, filterdata
  14. For Each bobj In ss
  15. i = i + 1
  16. ReDim Preserve arr(1 To i)
  17. a = bobj.GetAttributes
  18. arr(i) = a(0).TextString
  19. Next
  20. With xls.Workbooks.Add
  21.    .Sheets(1).[a1].Resize(i, 1) = xls.Transpose(arr)
  22.    .SaveAs "d:/123.xls"
  23.    .Close
  24. End With
  25. xls.Quit
  26. End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-12-8 01:14:58 | 显示全部楼层
谢谢二位老师的指点,调试成功了,谢谢!
发表于 2013-1-23 15:05:36 | 显示全部楼层
sscylh 发表于 2012-10-10 12:10

斑竹跨界高手
发表于 2013-3-28 23:40:28 | 显示全部楼层
顶一下!!!!!!
发表于 2013-8-15 20:30:48 | 显示全部楼层
支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 20:26 , Processed in 0.233790 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表