Autocad 2011 vba和外部参照

Autocad 2011 vba和外部参照,vba,autocad,Vba,Autocad,我正在使用以下方法将外部dwg文件插入到另一个文件中: Set xrefInserted = ThisDrawing.ModelSpace.AttachExternalReference(refDwgName, refDwgName, insertionPnt, 1, 1, 1, 0, False) xrefInserted.Update 这是作为外部块插入的,因此我将其绑定到图形: For Each tempBlock In ThisDrawing.Blocks

我正在使用以下方法将外部dwg文件插入到另一个文件中:

Set xrefInserted = ThisDrawing.ModelSpace.AttachExternalReference(refDwgName, refDwgName, insertionPnt, 1, 1, 1, 0, False)
xrefInserted.Update
这是作为外部块插入的,因此我将其绑定到图形:

        For Each tempBlock In ThisDrawing.Blocks
           If tempBlock.IsXRef Then
               If (InStr(1, UCase(tempBlock.name), "MAJ_MATRICE", vbTextCompare)) Then
                    tempBlock.Bind (False)
                   Exit For
               End If
            End If
        Next
现在我想分解它,首先AcadBlock似乎并没有和分解方法,只有AcadBlock引用

因此,我寻找参考:

Dim ent As AcadEntity
Dim blockRefObj As AcadBlockReference

    For Each ent In ThisDrawing.ModelSpace
       If TypeOf ent Is AcadBlockReference Then
           If (InStr(1, UCase(ent.name), "MAJ_MATRICE", vbTextCompare)) Then
                Set blockRefObj = ent
                blockRefObj.Explode
                Exit For
           End If
       End If
    Next
问题是

爆炸

失败,它告诉我“无效-2145386494”

我调试了代码,我认为问题在于AcadBlockReference仍然是AcadExternalReference类型,无法分解外部引用

如果我在返回图形(函数调用已结束)后重新运行代码并查找AcadBlockReference,它现在是AcadBlockReference类型,我可以正确地分解它


我似乎无法在绑定它的同一个函数中,在同一个执行中完成它。

我不明白为什么您不使用thisdrawing.modelspace.insertblock开始?
这首先返回一个acadblockreference对象

BlockRebj和ent的Dim语句在哪里?您是否尝试了Bind(True)?(只是为了调试)你好,我刚试过,同样的错误