乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 305|回复: 11

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

[复制链接]

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-4-25 16:40:00 | 显示全部楼层

在你的提示下,已经完成了代码编写,谢谢了!
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
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2018-4-25 14:35:00 | 显示全部楼层
我也做过类似的程序,我的方法是:
读取列表,在当前打开的文档里找是否已经打开,打开了就赋值给mydocument,没打开就打开并赋值给mydocument, 然后mydocument.activate,操作。
根据实际情况,可以设置一个变量保存是否已经打开,以便操作完毕后是否需要关闭新打开的文件。
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2018-4-25 16:57:00 | 显示全部楼层
一点建议
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
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2018-4-25 14:14:00 | 显示全部楼层
document.Activate
回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-4-25 14:23:00 | 显示全部楼层

感谢您的回答!
我新手,不是很明白,我已经知道路径(mypath)和名称(myfilename),具体应该怎么引用呢?也就是说我不知道路径加名称怎么与你说的document对应,查了好长时间资料也不会写,麻烦您了!
回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-4-25 14:27:00 | 显示全部楼层

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

                               
登录/注册后可看大图


回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-4-25 14:38:00 | 显示全部楼层

可能我没说清楚,我就是不知道怎么赋值给mydocuments,能告诉我具体语句吗?不好意思,我刚开始接触,不太明白。
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2018-4-25 14:40:00 | 显示全部楼层
先学习下如何遍历document。看帮助或者论坛里找都可以。
回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-4-25 14:49:00 | 显示全部楼层

哦,我好像明白了,是不是用for each 在documents里面循环比对,找到document对象后直接.activate?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 10:06 , Processed in 0.202152 second(s), 72 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表