VBScript块属性错误
大家好我的VBScript在尝试读取块属性时遇到问题-错误消息不断指出第#34 chr#10行(800A01A8)需要一个对象。
有什么想法吗?。
提前谢谢。
DDD
Dim fso
Dim oFolder
Dim colFiles
Dim oFile
Dim oAcad
Dim pSpace
Dim i
Dim c
Dim ent
Dim varAtt
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(WScript.Arguments(0)) Then
Set oFolder = fso.GetFolder(WScript.Arguments(0))
Set oAcad = CreateObject("AutoCAD.Application")
oAcad.Visible = True
Set colFiles = oFolder.Files
For each oFile in colFiles
if Right(oFile.Name, 3) = "dwg" Then
oAcad.Documents.Open oFile
Set doc = oAcad.ActiveDocument
Set pSpace = doc.PaperSpace
For c = 0 To pSpace.Count -1
Set ent = pSpace.Item(c)
If ent.EntityName = "AcDbBlockReference" Then'LINE 30======
If ent.HasAttributes Then
varAtt = ent.GetAttributes
For i = LBound(varAtt) To UBound(varAtt)
If varAtt.Item(i).TagString = "TITLE1" Then
MsgBox varAtt.TegxtString
End If
Next
End If
End If
Next
End If
Next
End If
首先,欢迎来到论坛。
首先尝试删除第35行的拼写错误。
应为“MsgBox varAtt.TextString”
在第#33行插入一个中断,并检查varAtt的内容。varAtt似乎为空,因此出现错误消息。 谢谢你的建议。
确实如此-我输入了错误的文本字符串。。。。
当你说“break”时,我假设你的意思是“Exit For”-问题是varAtt变量失去了它的值。。。 我相信Tyke的意思是一个断点,比如,你可以检查varAtt的值。
也就是说,考虑到VBScript可以在记事本中编码,我不确定在哪个IDE中应用断点。。
RenderMan这两点都正确,谢谢你澄清这一点。
是否可以将“varAtt”的值打印到命令行?类似于调试。打印方法。我没有VBScript的任何经验。
别担心;很乐意帮忙。
FWIW-这一直是一个在我的建议框中烧个洞的话题。。。特别是将VBA/VBScript与隔离。NET(甚至可能是ARX?)进入不同的论坛。我不知道有多少次我在一个操作结束时才意识到这是一个关于VBA的帮助请求,我只是比较熟练(我直接从Visual LISP跳到.NET)。
不确定如何调试。打印,但我知道MsgBox函数运行良好。
另外,我似乎错了。。。在快速搜索如何调试VBScript之后,显然可以使用Visual Studio作为IDE(oops!)。
该线程非常清楚地说明了如何使用Visual Studio 2010进行调试(请参阅OP下面的两个帖子标记作为答案)。这篇文章提供了另一种可能对OP有所帮助的选择。
HTH公司
... 哦,是的,差点忘了一个。。。现在,Autodesk已将DesignScript添加到各种编程语言中。
页:
[1]