T.Willey 发表于 2006-7-17 20:35:41

Bob,这实际上并不完全正确……如果您的索引基数为0,则使用Dim数据(1)作为任意值;知道你指的是数据(0到1)…这里是#039;这是一个简单的例子来证明这一点:
Sub test()
Dim MyArray(2) As String
MyArray(0) = "Test1"
MyArray(1) = "Test2"
MyArray(2) = "Test3"
Dim i As Integer
For i = 0 To UBound(MyArray)
    Debug.Print MyArray(i)
Next
End Sub
现在,我更喜欢你展示的方式,让你知道较低的&上界,但它'不是强制性的
Tim,
关于对象的错误是由于您使用此格式造成的Set Data(0) = Str1
Set Data(1) = Str2
Set DataType(0) = 1
Set DataType(1) = 2
只有在投射某种类型的对象时才使用Set。在这种情况下,字符串和整数不是对象,因此请丢失集合….但会出现另一个错误,因为Autocad希望DXF代码是整数,并且数组必须按此进行尺寸标注….请确保更改第一个函数/子以接受整数数组
因此,对于使用DXF代码的任何内容,例如Xrecords、SelectionSet过滤器等,您需要使用以下格式:
Dim DataType(1) As Integer
Dim Data(1) As Variant
Data(0) = Str1
Data(1) = Str2
DataType(0) = 1
DataType(1) = 2
HTH

T.Willey 发表于 2006-7-17 22:19:39

谢谢杰夫 即#039;这就是我快速回答而不是集中注意力的结果 

T.Willey 发表于 2006-7-18 11:06:16

谢谢杰夫和鲍勃 现在我'我犯了另一个错误,我不知道;我不明白为什么 这是代码
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
MyDict = DictCol.Add("VBAtoLisp")
Xrec = MyDict.AddXRecord(XrecName)
Xrec.SetXRecordData DataType, Data
End Sub
这里出错了
MyDict = DictCol.Add("VBAtoLisp")
说它是;预期函数或变量;。。它想要什么 我想我可以用add添加一本新词典,但它没有#039;我似乎不喜欢它 它正在突出显示;。添加;代码的一部分,如果有帮助的话
编辑:;如果我使用Set MyDict=DictCol,它甚至会出错。添加(“VBAtoLisp”)[根据Jeff关于使用Set for objects的评论尝试。]

T.Willey 发表于 2006-7-18 11:29:01


Public Sub AddXRec(ByRef XrecName As String, DataType As Variant, Data As Variant)
Dim DictCol As Collection
Dim MyDict As AcadDictionary
'you want this to be a dictionary so no reason not to Dim it as such
Dim Xrec As AcadXRecord
Set DictCol = This.Drawing.Dictionaries
Set MyDict = DictCol.Add("VBAtoLisp")
'if you are setting an object, you need Set X = Y
Set Xrec = MyDict.AddXRecord(XrecName)
Xrec.SetXRecordData DataType, Data
'if you are setting the properties of an object, you don't
End Sub

T.Willey 发表于 2006-7-18 11:33:08

我也试过了,鲍勃 也许你没有'看不到我对其他帖子的编辑 我将继续查看帮助,看看是否能够理解正在发生的事情;再次感谢。
页: 1 [2]
查看完整版本: 设置XRecord