如何把已经打开的非活动文档设置为活动文档?
我自己做一个小程序,列表中列出了要处理的文档,要逐一打开处理,但用户可能已经自己打开了其中部分图纸,再次打开会变成只读,无法写入数据,这时候需要把已经打开的图纸设置成活动文档,才可以写入数据,但不知道怎么设置活动文档,请高手指教!IsOpenString '获得已经打开图纸的字符串组合
If IsOrNotHave(OpenTmpString, MyFileName) = False Then ’IsOrNotHave是自定义函数,用来查找判断是否已经打开
acadapp.Documents.Open MyPath & MyFileName ‘未打开的图纸正常打开
Else
’已经打开的图纸想设置为活动文档,这里应该怎么写???
End If
在你的提示下,已经完成了代码编写,谢谢了!
IsOpen = False
For Each acaddoc In acadapp.Documents
If StrComp(acaddoc.Name, MyFileName, vbTextCompare) = 0 Then
IsOpen = True
acaddoc.Activate
Exit For
End If
Next
If IsOpen = False Then acadapp.Documents.Open MyPath & MyFileName 我也做过类似的程序,我的方法是:
读取列表,在当前打开的文档里找是否已经打开,打开了就赋值给mydocument,没打开就打开并赋值给mydocument, 然后mydocument.activate,操作。
根据实际情况,可以设置一个变量保存是否已经打开,以便操作完毕后是否需要关闭新打开的文件。 一点建议
IsOpen = False
For Each acaddoc In acadapp.Documents
If StrComp(acaddoc.Name, MyFileName, vbTextCompare) = 0 Then
IsOpen = True
set mydoc=acaddoc
Exit For
End If
Next
If IsOpen = False Then set mydoc=acadapp.Documents.Open MyPath & MyFileName
mydoc.activate document.Activate
感谢您的回答!
我新手,不是很明白,我已经知道路径(mypath)和名称(myfilename),具体应该怎么引用呢?也就是说我不知道路径加名称怎么与你说的document对应,查了好长时间资料也不会写,麻烦您了!
我查到的资料都是要先打开一次才能设置活动,可我现在文档已经打开不需要再打开一次,请问怎么设置呢?
http://bbs.mjtd.com/forum.php?mod=attachment&aid=OTk4Nzh8Y2YxYjQ0OTh8MTY1OTA3OTE5OXw3MzI2OTE4fDE3NzE3Nw%3D%3D&noupdate=yes¬humb=yes
可能我没说清楚,我就是不知道怎么赋值给mydocuments,能告诉我具体语句吗?不好意思,我刚开始接触,不太明白。 先学习下如何遍历document。看帮助或者论坛里找都可以。
哦,我好像明白了,是不是用for each 在documents里面循环比对,找到document对象后直接.activate?
页:
[1]
2