天各一方 发表于 2022-9-1 16:31:33

插入块时提示类无效就终止了。求教代码哪里有问题。

Sub demo()
Dim varpt As Variant'插入点
Dim br As AcadBlockReference '定义插入块返回对象
varpt = ThisDrawing.Utility.GetPoint'选择输出的位置
Dim num1 As Integer'循环次数定义
num1 = ThisDrawing.Blocks.Count - 1 '循环次数赋值有几个块,就循环几次
Dim i As Integer'循环
Dim name1 As String ' 块名储存
For i = 4 To num1'进入循环
name1 = ThisDrawing.Blocks.Item(i).Name '块名赋值

Set br = ThisDrawing.ModelSpace.InsertBlock(varpt, name1, 1, 1, 1, 0) '在指定位置插入块
varpt(1) = varpt(1) - 10'插入点y值向下移动10个单位继续插入
Next i

End Sub


天各一方 发表于 2022-9-1 16:34:41

新的错误提示是,bstrname 在insertblock中无效。。。完全看不懂什么意思。。。毕竟我是入门级菜鸟

天各一方 发表于 2022-9-1 16:39:45

on error resume next,我加入了这句话,忽视了错误项目,但是可以看出,少了很多块。

chixun99 发表于 2022-9-2 11:37:25

估计是无名块的问题。

sieben 发表于 2022-9-2 17:46:58

你这个是VBA吧?什么版本的CAD?
你的意思是有些成功了?不妨在一个空白图纸定义一两个图块试试,若没有问题的话,估计是网友所说的匿名图块问题,可以试试不要插入*开头名字的图块名。

天各一方 发表于 2022-9-4 18:27:43

sieben 发表于 2022-9-2 17:46
你这个是VBA吧?什么版本的CAD?
你的意思是有些成功了?不妨在一个空白图纸定义一两个图块试试,若没有问 ...

为了避免你说的匿名块问题,我写了段代码,如果名字里面带*,就把序列值赋值给它当名字。然而,还是有一些块,看不到。后来,我发现是因为没有设置基准点。都跑到别的地方去了。。。。

d1742647821 发表于 2022-10-13 11:52:31

出门右转VBA Activex区
页: [1]
查看完整版本: 插入块时提示类无效就终止了。求教代码哪里有问题。