乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 235|回复: 9

VBA提取CAD的表格,别人做了很多类似的

[复制链接]

2

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
17
发表于 2020-8-2 11:42:00 | 显示全部楼层 |阅读模式
因为没有代码可供复制,某宝上面买了个,刚好抄了一段判断选择集是否存在得我函数代码。
没什么说的,需要注意的是要保存为DVB文件,然后再DVB的所在路径下新建一个Excel文件(名为“提取表格”后缀改为xlsm,工作表名为“提取表格”)
直接粘贴代码吧:
  1. Option Explicit
  2. Public excelapp As Object
  3. Public excel As Object
  4. Public lj As String
  5. Public Function createSSet() As AcadSelectionSet
  6.     On Error Resume Next
  7.     If Not IsNull(ThisDrawing.SelectionSets.Item("mySelectionSet")) Then
  8.         Set createSSet = ThisDrawing.SelectionSets.Item("mySelectionSet")
  9.         createSSet.Delete
  10.     End If
  11.     Set createSSet = ThisDrawing.SelectionSets.Add("mySelectionSet")
  12. End Function
  13. Public Sub tqbg()
  14. Dim lj As String
  15. Dim ex As Object
  16.     lj = VBA.Left(ThisDrawing.Application.VBE.ActiveVBProject.FileName, InStr(ThisDrawing.Application.VBE.ActiveVBProject.FileName, "\提取") - 1) & "\提取表格.xlsm"
  17. Set excel = GetObject(lj)
  18. Dim SSet As AcadSelectionSet '线条
  19. Dim SSet1 As AcadSelectionSet '文字
  20. MsgBox "请注意:" & vbCr & "1、本功能仅仅支持由直线(Line)和单行文字(Text)构成的表格,如有其它图元,请重复分解命令(Explode),直到无法再次分解为止" & vbCr & vbCr & "2、表格必须横平竖直,不能有斜线" & vbCr & vbCr & "3、格子里面的单行文字插入点必须在格子以内,不然会计算错误" & vbCr & vbCr & "以上任意一个条件不满足均会导致提取表格错位或者失败,请严格按要求提取!!!"
  21. Dim pt1 As Variant
  22. Dim pt2 As Variant
  23.     pt1 = ThisDrawing.Utility.GetPoint(, "选择要提取的区域角点1:")
  24.     pt2 = ThisDrawing.Utility.GetCorner(pt1, "选择要提取的区域角点2:")
  25.    
  26. Dim fType(0) As Integer
  27. Dim fData(0) As Variant
  28.     fType(0) = 0: fData(0) = "LINE"
  29.     Set SSet = createSSet()
  30.         If pt1(0)  szx(j0) Then
  31.             temp = szx(j0)
  32.             szx(j0) = szx(i0)
  33.             szx(i0) = temp
  34.         End If
  35.     Next j0
  36. Next i0
  37. For i0 = 1 To UBound(hzx) - 1 '横直线从上往下排序
  38.     For j0 = i0 + 1 To UBound(hzx)
  39.         If hzx(i0)  szx(i0) Then
  40.         j0 = j0 + 1
  41.         ReDim Preserve szx1(1 To j0)
  42.         szx1(j0) = szx(i0)
  43.         End If
  44.     Next i0
  45.    
  46.     ReDim hzx1(1 To 1)
  47.     hzx1(1) = hzx(1)
  48.     j0 = 1
  49.     For i0 = 2 To UBound(hzx)
  50.         If hzx1(j0)  hzx(i0) Then
  51.         j0 = j0 + 1
  52.         ReDim Preserve hzx1(1 To j0)
  53.         hzx1(j0) = hzx(i0)
  54.         End If
  55.     Next i0
  56.    
  57. '------------逐个判断文字插入点是否在纵横直线范围内
  58.     fType(0) = 0: fData(0) = "TEXT"
  59.         Set SSet1 = createSSet()
  60.         If pt1(0)  szx1(j) And wzsz(ii * 2 + 1)  hzx1(i + 1) Then
  61.                 If excel.sheets("提取表格").cells(i + zhh, j)  "" Then
  62.                     excel.sheets("提取表格").cells(i + zhh, j) = wz(ii) & " " & excel.sheets("提取表格").cells(i + zhh, j)
  63.                 Else
  64.                     excel.sheets("提取表格").cells(i + zhh, j) = wz(ii)
  65.                 End If
  66.             End If
  67.         Next ii
  68.     Next j
  69. Next i
  70. Set excel = Nothing
  71. MsgBox "提取完毕" & vbCr & "本小软件由绛花洞主设计" & vbCr & "如有疑问请联系QQ:672277923"
  72. End Sub


本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

91

主题

392

帖子

13

银币

中流砥柱

Rank: 25

铜币
753
发表于 2020-8-3 08:37:00 | 显示全部楼层
你好怎么使用啊????
回复

使用道具 举报

2

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
17
发表于 2020-8-3 11:34:00 | 显示全部楼层

vbarun 就开始使用了啊,VBA做的都没有命令,一律运行vbarun
回复

使用道具 举报

0

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
6
发表于 2020-8-5 20:52:00 | 显示全部楼层
不错的插件
回复

使用道具 举报

1

主题

5

帖子

5

银币

初来乍到

Rank: 1

铜币
9
发表于 2020-9-20 22:27:00 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

1

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
13
发表于 2020-9-21 14:49:00 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2021-2-24 09:52:00 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

0

主题

16

帖子

6

银币

初来乍到

Rank: 1

铜币
16
发表于 2021-10-29 18:50:00 | 显示全部楼层
2010加载不了
回复

使用道具 举报

2

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
17
发表于 2021-11-1 09:39:00 | 显示全部楼层

2010以后的版本就要安装vba的扩展包了,具体下载链接搜一下论坛
回复

使用道具 举报

0

主题

16

帖子

6

银币

初来乍到

Rank: 1

铜币
16
发表于 2021-11-1 16:08:00 | 显示全部楼层
收到,谢谢!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 22:10 , Processed in 0.430727 second(s), 77 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表