T.Willey 发表于 2006-7-17 18:41:39

设置XRecord

为什么赢了'这不管用吗
Public Sub AddXRec(ByRef XrecName As String, DataType As Variant, Data As Variant)
Dim DictCol As Collection
Dim MyDict As Object
Dim Xrec As AcadXRecord
Set DictCol = This.Drawing.Dictionaries
Set MyDict = DictCol.Add("VBAtoLisp")
Set Xrec = MyDict.AddXRecord(XrecName)
xrec.SetXRecordData (datatype,data)
End Sub
当我在最后一行点击enter时,它给出和错误声明;编译错误:应为:="

T.Willey 发表于 2006-7-17 18:47:49

去掉括号Public Sub AddXRec(ByRef XrecName As String, DataType As Variant, Data As Variant)
Dim DictCol As Collection
Dim MyDict As Object
Dim Xrec As AcadXRecord
Set DictCol = This.Drawing.Dictionaries
Set MyDict = DictCol.Add("VBAtoLisp")
Set Xrec = MyDict.AddXRecord(XrecName)
xrec.SetXRecordData datatype,data
End Sub

T.Willey 发表于 2006-7-17 18:49:20

对于大多数事情来说,经验法则是VBA,如果你在一个等式的右侧,例如Set Xrec = MyDict.AddXRecord(XrecName) 你使用parethesis,如果没有,你就不用't。

T.Willey 发表于 2006-7-17 18:56:47

非常感谢鲍勃。

Jeff_M 发表于 2006-7-17 18:58:23

没问题。

T.Willey 发表于 2006-7-17 19:13:25

如果希望在整个代码中使用一致的括号,可以使用call语句--Public Sub AddXRec(ByRef XrecName作为字符串,数据类型作为变量,数据作为变量) Dim DictCol As Collection,_&nbsp&nbsp MyDict;作为对象&nbsp&nbsp Xrec 作为AcadXRecord 设置DictCol=This.Drawing。词典 设置MyDict=DictCol。添加(“VBAtoLisp”)
 设置Xrec =MyDict。AddXRecord(XrecName)
 致电xrec。SetXRecordData(数据类型,数据)
结束Sub(未测试/从内存绘制)

T.Willey 发表于 2006-7-17 19:27:18

谢谢你,迈克尔 只是想知道这是怎么回事
下一个问题:当你想要填充和XRecord时,你需要使用变体,对吗
你用和值数组定义变量吗
这是代码I'我在努力
Public Sub Main(ByRef Str1 As String, Str2 As String)
Dim DataType(1) As Variant
Dim Data(1) As Variant
Set Data(0) = Str1
Set Data(1) = Str2
Set DataType(0) = 1
Set DataType(1) = 2
AddXRec "VBAtoLisp", DataType, Data
End Sub
我通过Str1&来自用户表单的Str2;该错误表示它希望为Str1设置一个对象,或者首先设置的任何其他变量(我试图设置数据类型,但出现了相同的错误)
为什么?

T.Willey 发表于 2006-7-17 19:43:31

因为您将数组暗显为索引为1的1项数组;您需要为其提供您正在使用的整个范围,因此,Dim数据类型(0到1)作为变量

Jeff_M 发表于 2006-7-17 19:45:30

谢谢你,鲍勃 我明天得去拿这个,它'是我回家的时候了,那里没有Cad。

T.Willey 发表于 2006-7-17 19:48:36

我也该走了 我们'明天我会再玩一些。
页: [1] 2
查看完整版本: 设置XRecord