明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1402|回复: 13

如何把已经打开的非活动文档设置为活动文档?

[复制链接]
发表于 2018-4-25 13:49:35 | 显示全部楼层 |阅读模式
我自己做一个小程序,列表中列出了要处理的文档,要逐一打开处理,但用户可能已经自己打开了其中部分图纸,再次打开会变成只读,无法写入数据,这时候需要把已经打开的图纸设置成活动文档,才可以写入数据,但不知道怎么设置活动文档,请高手指教!
IsOpenString '获得已经打开图纸的字符串组合
If IsOrNotHave(OpenTmpString, MyFileName) = False Then ’IsOrNotHave是自定义函数,用来查找判断是否已经打开
acadapp.Documents.Open MyPath & MyFileName ‘未打开的图纸正常打开
Else
’已经打开的图纸想设置为活动文档,这里应该怎么写???
End If

 楼主| 发表于 2018-4-25 16:40:27 | 显示全部楼层
mikewolf2k 发表于 2018-4-25 15:12
直接用document名字赋值,如果存在就返回相应的文档,如果不存在就报错。
如果这算一个方法的话。

在你的提示下,已经完成了代码编写,谢谢了!
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
发表于 2018-4-25 14:35:07 | 显示全部楼层
我也做过类似的程序,我的方法是:
读取列表,在当前打开的文档里找是否已经打开,打开了就赋值给mydocument,没打开就打开并赋值给mydocument, 然后mydocument.activate,操作。
根据实际情况,可以设置一个变量保存是否已经打开,以便操作完毕后是否需要关闭新打开的文件。
发表于 2018-4-25 16:57:43 | 显示全部楼层
一点建议
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
发表于 2018-4-25 14:14:16 | 显示全部楼层
document.Activate
 楼主| 发表于 2018-4-25 14:23:53 | 显示全部楼层

感谢您的回答!
我新手,不是很明白,我已经知道路径(mypath)和名称(myfilename),具体应该怎么引用呢?也就是说我不知道路径加名称怎么与你说的document对应,查了好长时间资料也不会写,麻烦您了!
 楼主| 发表于 2018-4-25 14:27:51 | 显示全部楼层

我查到的资料都是要先打开一次才能设置活动,可我现在文档已经打开不需要再打开一次,请问怎么设置呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2018-4-25 14:38:59 | 显示全部楼层
mikewolf2k 发表于 2018-4-25 14:35
我也做过类似的程序,我的方法是:
读取列表,在当前打开的文档里找是否已经打开,打开了就赋值给mydocume ...

可能我没说清楚,我就是不知道怎么赋值给mydocuments,能告诉我具体语句吗?不好意思,我刚开始接触,不太明白。
发表于 2018-4-25 14:40:53 | 显示全部楼层
先学习下如何遍历document。看帮助或者论坛里找都可以。
 楼主| 发表于 2018-4-25 14:49:33 | 显示全部楼层
mikewolf2k 发表于 2018-4-25 14:40
先学习下如何遍历document。看帮助或者论坛里找都可以。

哦,我好像明白了,是不是用for each 在documents里面循环比对,找到document对象后直接.activate?
发表于 2018-4-25 14:51:10 | 显示全部楼层
试  试  看
 楼主| 发表于 2018-4-25 15:02:16 | 显示全部楼层

非常感谢您的耐心解答,问题应该能解决了,谢谢您!
还想再问一句,有没有什么方法能快速将已经知道fullname的对象设置为活动(即不用遍历documents),如果没有就不用回答了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:17 , Processed in 0.174902 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表