帮忙看看为什么打开样板无法继续运行?
下面是我写的一段代码,当是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
在运行Set Doc = ThisDrawing.Application.Documents.Open(currTemplateDWGPath)这个后,打开了模板后,模板的会被转到后台,原来的DWG文件变为当前文件,运行到Thisdrawing.Application.Documents.Open(currTemplateDWGPath)时,就无法运行,要关了模板文件才会继续运行 问题找到,是原来在设置工具栏按钮时,用了自定义的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]