diadblo 发表于 2018-6-28 10:22:43

帮忙看看为什么打开样板无法继续运行?

下面是我写的一段代码,当是VBA调试时可以直接运行通过,但是在打开的一个DWg文件 通过工具栏按钮运行时,会打开样板文件,并为当前文件,但代码只会运行到msgbox "dd"这句之前,后面的就运行不了.我这段代码的主要作用是加载块和加载图层设置到模板里.
Public Sub AddBlockAndLayer()
Dim BLin As String
Dim KeyWords As String
On Error Resume Next
   KeyWords = "Y N"
   ThisDrawing.Utility.InitializeUserInput 1, KeyWords            '设置关键词
   BLin = ThisDrawing.Utility.GetKeyword("是否加载到样板:[加载(Y)/ 当前(N)]<N>:")

If BLin = "Y" Then
      Dim preferences As AcadPreferences
      Dim currTemplateDWGPath As String
      Dim newTemplateDWGPath As String
      Set preferences = ThisDrawing.Application.preferences
' 打开目前的 TemplateDWGPath值
      currTemplateDWGPath = preferences.Files.QNewTemplateFile

       Dim Doc As AcadDocument
       Dim drawing As AcadDocument
       Dim HasFind As Boolean
       Dim DrawingPath As String
       HasFind = flase
       For Each drawing In ThisDrawing.Application.Documents
         DrawingPath = drawing.Path & "\" & drawing.Name
         If StrComp(currTemplateDWGPath, DrawingPath, vbTextCompare) = 0 Then
            HasFind = True
            Doc = drawing
            Exit For
         End If
       Next drawing

       If HasFind = False Then
          Set Doc = ThisDrawing.Application.Documents.Open(currTemplateDWGPath)
   End If
   ThisDrawing.Application.ActiveDocument = Doc

    MsgBox "dd"                        "从这样开始
   Call AddBlocks
   Call AddLayers
   Exit Sub
   Doc.Save
   Doc.Close

Else
    If BLin = "N" Then
       Call AddBlocks
       Call AddLayers
    End If

End If
End Sub

diadblo 发表于 2018-6-29 09:26:17

在运行Set Doc = ThisDrawing.Application.Documents.Open(currTemplateDWGPath)这个后,打开了模板后,模板的会被转到后台,原来的DWG文件变为当前文件,运行到Thisdrawing.Application.Documents.Open(currTemplateDWGPath)时,就无法运行,要关了模板文件才会继续运行

diadblo 发表于 2018-6-30 11:54:22

问题找到,是原来在设置工具栏按钮时,用了自定义的VBA 运行函数.当时是因为要先选择后操作按教程写了这个LSP.
(defun C:VBARUNX ()
    (vl-load-com)
    (vla-runmacro
         (vlax-get-acad-object)
         (getstring "\n宏名称: ")
    )
    (princ)
)

在设置运行命令时用了^C-C_VbarunX....
改回^C-C -Vbarun...就无问题.
有没有论友可以改改上面的LSP,可以让上面所问的程序正常运行.
页: [1]
查看完整版本: 帮忙看看为什么打开样板无法继续运行?