提问lzh741206斑竹
关于vbnet代码不能运行的问题vbnet与vb不同在于原来的variant类型都变成了object类型,但是我在用选择筛选的时候发现代码老是通不过,典型的用getentity如下:
Dim acadobj As Object
Dim acaddoc, acadutil As Object
Dim returnobj As Object
Dim d As Object
acadobj = GetObject(, ".Application.16")
acaddoc = acadobj.ActiveDocument
acadutil = acaddoc.Utility
AppActivate("Autocad")
Call acadutil.GetEntity(returnobj, d, "..选择物体") ***在这一句提示类型不匹配。 同样这一句是筛选文本的,也运行不通过,在最后一句出现错误。
acadobj = GetObject(, "AutoCAD.Application.16")
acaddoc = acadobj.ActiveDocument
mospace = acaddoc.ModelSpace
acadutil = acaddoc.Utility
AppActivate("Autocad")
'选择文本创建选择集
sset = acaddoc.SelectionSets.Add("my")
'定义过滤组码数据
Dim gpcode(0) As Integer
Dim datavalue(0) As String
gpcode(0) = 0
datavalue(0) = "Text"
Dim groupcode As Object
Dim datacode As Object
groupcode = gpcode
datacode = datavalue
acadutil.prompt("请选择修改的文本:")
Call sset.SelectOnScreen(groupcode, datacode)
不用Call Dim gpcode(0) As Short
Dim datavalue(0) As Object
下面是多余的
Dim groupcode As Object
Dim datacode As Object
groupcode = gpcode
datacode = datavalue 在vb里面通常需要先定义数组再进行数据类型的转化(特别是在筛选多于1个的时候),是不是在net里面就没有必要转化了?还是因为这个只有一个筛选类型,所以没有?还是本来在net里面只要 Dim gpcode(n) As Short
Dim datavalue(n) As Object
sset.SelectOnScreen(gpcode,datavalue)
就可以了。试验了一下,原来这个比vb方便多了,省了两个变量和变量的转化。
谢谢斑竹,但是我第一楼的问题还不好解决,我拿掉了call后还是提示数据类型出错。
vb里面这些也是多余的代码
页:
[1]