2016-01-13 58 views
0

每当我尝试调试或运行程序时,如果遇到错误,VBE(Autocad)不会显示错误所在的行,而不像其他IDE,它曾经在这条线上,并以黄色突出显示。另外,滚动不起作用。我知道我应该安装插件,但我无法帮助自己。 enter image description here在autocad中调试VBA ide不显示错误的位置

Option Explicit 
    Sub Test() 
    'Declarations 
    'Opened Document 
    Dim acDocu As AcadDocument 
    Set acDocu = ThisDrawing.Application.ActiveDocument 

    'Select on screen 
    Dim acSelectionSet As AcadSelectionSet 
    Set acSelectionSet = ThisDrawing.SelectionSets.Add("SjjEffffT") 
    acSelectionSet.SelectOnScreen 

    'Manipulating in loops for finding group names having objects selected 
    Dim entity As AcadEntity 
    Dim entityhandle() As String 
    Dim Grp As AcadGroup 
    Dim groupname() As String 
    Dim i As Integer 
    i = 0 
    Dim j As Integer 
    j = 0 
    Dim temp As Integer 
    temp = 0 
    Dim GrpEnt As AcadEntity 
    Dim grpenthandle As String 
    Dim entity_count As Integer 
    'Dim entity_array As Variant 
    entity_count = acSelectionSet.Count 
    ReDim entityhandle(entity_count) 
    ReDim groupname(entity_count) 
    For Each entity In acSelectionSet 
    'entity_array = entity 
      entityhandle(i) = entity.Handle 
      For Each Grp In ThisDrawing.groups 
        For Each GrpEnt In Grp 
        grpenthandle = GrpEnt.Handle 
        If entityhandle(i) = grpenthandle Then 
         If temp = 0 Then 
          groupname(j) = Grp.Name 
          Debug.Print "Group in selection:" & groupname(j) 
          j = j + 1 
         End If 

        End If 
       temp = temp + 1 
      Next 
      temp = 0 
     Next 
     i = i + 1 
    Next 

    'Copying the objects and pasting into new drawing 
    Dim acDocto As AcadDocument 
    Dim file_name As String 
    'file_name = InputBox("Enter the file name along with full path and extension") 
    file_name = "D:\PI_Tool_files_3223\D00440023new.DWG" 
    Set acDocto = Documents.Open(file_name) 
    Dim acObject As AcadObject 
    Dim retvalue As Variant 
    retvalue = acDocu.CopyObjects(entityhandle, acDocto.ModelSpace) 

    acSelectionSet.Delete 
    End Sub 

该代码是上述写入。但我认为问题与加载项,因为我无法调试。

+0

没有代码,任何答案都是黑暗中的刺。 – Gareth

+0

@Gareth嘿,我的主要问题是调试,因为我无法得到确切的线,它显示错误。可能是因为插件。不知道! – Divyanshu

+0

发生这种情况是因为VBA引擎无法在库上找到对象和方法,所以当它尝试运行该方法时,会引发错误。这就是为什么你不能看到它发生的地方。例如,你可以创建另一个子程序并调用你的test()例程。 –

回答

1

VBA IDE相当陈旧(1998),它的调试能力有限。您应该停止使用它,这是一种过时的技术,不再受Microsoft/Autodesk主动支持。

对于一些错误,它无法找到发生错误的行,并且您留下了模糊的错误代码和无用的消息。

+0

他应该使用什么IDE? – Verzweifler

+0

[Visual Studio](https://www.visualstudio.com/post-download-vs?sku=community&clcid=0x40c)。 Community Edition对个人,小型组织,学习环境,学术研究和开源项目免费。请阅读[许可条款](https://www.visualstudio.com/support/legal/dn877550)以查看它是否适合您的使用。你可以阅读这个[教程](http://usa.autodesk.com/adsk/servlet/index?id=18162650&siteID=123112)开始。 – Maxence

+0

@Maxence我不能添加一些插件,使其工作? – Divyanshu

0

您是否尝试过在第一个可能的行设置断点? (Set acDocu = ThisDrawing.Application.ActiveDocument) 然后逐步查看有问题的对象/属性/方法。 它并不总是工作。

0

你可以加载代码到一个模块,而不是“ThisDrawing”,然后调试?

+0

我已为您添加评论。您可以删除帖子。 –

+0

答案仅用于完整答案!最好发表评论。可悲的是,你没有代表。 –

+1

好的,谢谢。我会知道下次! – tmccar