乐筑天下

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

自动化错误-灾难性错误-VBA Excel在ACAD 2015中创建新块

[复制链接]

11

主题

40

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2015-12-9 07:53:29 | 显示全部楼层 |阅读模式
场景:
I'Excel 2010中的m(32位,Win 7 64位)
尝试使用现有图元(表)创建块,运行AutoCAD 2015
代码来自Fixo-http://forums.augi.com/showthread.php?137159-如何从vba编程创建自己的块
  1. Dim blkDef As AcadBlock, _
  2.     blkRef As AcadBlockReference, _
  3.     oSset As AcadSelectionSet, _
  4.     tempBlkName As String, _
  5.     objColl(1) As Object, _
  6.     tempObj As Object
  7. tempBlkName = "_archive-Table" & Format(Now(), "hms")
  8. origTblHndl = acadtbl.Handle
  9. Set objColl(0) = adoc.HandleToObject(origTblHndl)
  10. Set blkDef = adoc.Blocks.Add(tablept, tempBlkName)
  11. AcadApp.ActiveDocument.CopyObjects objColl, blkDef
代码在上面代码摘录的最后一行给出了自动化错误分类错误
有人有什么想法吗&nbsp
谢谢
迈克
回复

使用道具 举报

7

主题

100

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2015-12-9 10:37:30 | 显示全部楼层
我不知道'看不到acadtbl设置在哪里。
回复

使用道具 举报

11

主题

40

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2015-12-9 14:02:15 | 显示全部楼层

acadtbl作为子程序的参数
  1. Sub PushRelayTable(AcadApp As AcadApplication, acadDoc As AcadDocument, acadtbl As AcadTable, datasheet As Worksheet, blnRelayCategory As Boolean)
调试时,我可以看到该表被添加到对象集合中
回复

使用道具 举报

7

主题

100

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2015-12-9 17:50:34 | 显示全部楼层
什么'blkdef的状态是什么?我不知道'我也不知道该怎么做。
回复

使用道具 举报

11

主题

40

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2015-12-10 06:23:01 | 显示全部楼层

代码块的第一行是blkDef的dim#039;从底部开始的第二行是设置blkDef的地方
tablept也在模块的前面设置 除最后一行外,任何一行都没有错误
更新(2015年12月10日)
将块创建例程重新定位到上一个例程,现在没有错误,但新创建的块不包含表
谜团加深了
回复

使用道具 举报

7

主题

100

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2015-12-10 10:34:02 | 显示全部楼层
CopyObjects方法只有两个参数,因此问题必须是其中之一。您可能不会得到错误,但blkDef可能仍然为null。即#039;这就是为什么我问它的地位是什么。在CopyObjects行上设置断点,查看blkdef是否已设置或为null。此外,如果您在sub中的某个位置使用了On error Resume Next,则可能不会出现错误。
回复

使用道具 举报

11

主题

40

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2015-12-10 11:19:05 | 显示全部楼层
你说得太对了,我没有't重置该模块中的错误处理程序 叹气
将错误处理程序添加回该模块(在适当的位置),并以相同的错误结束
根据变量watch,两个参数都有值&nbsp
把我的头发扯到这件上&nbsp
I;甚至还买了一本Lee Ambrosius的Autocad VBA书(Autocad平台自定义),这本书比我的另一本ACAD VBA书更新得多&nbsp
根据他的书,我的代码应该可以工作
回复

使用道具 举报

4

主题

54

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2015-12-10 17:23:37 | 显示全部楼层

只是一个玩笑&nbsp
回复

使用道具 举报

11

主题

40

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2015-12-17 07:48:08 | 显示全部楼层

只是一个玩笑
感谢您的反馈,但我不认为我'我没有遍历任何集合,是吗&nbsp
M
回复

使用道具 举报

7

主题

100

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2015-12-17 10:17:52 | 显示全部楼层

只是一个玩笑
感谢您的反馈,但我不认为我'我没有遍历任何集合,是吗&nbsp
M
在调用该方法时没有
如果您上传了电子表格和带有重现问题步骤的样例dwg,也许有人可以对其进行故障排除。有#039;这里没有多少信息。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-4-20 05:08 , Processed in 0.607695 second(s), 73 queries .

© 2020-2025 乐筑天下

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