设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3896|回复: 11
打印 上一主题 下一主题

[模块/函数] 能否用代码判定某个指定的Excel文件是否打开?...

[复制链接]
跳转到指定楼层
1#
发表于 2010-2-23 19:19:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
能否用代码判定某个指定的Excel文件是否打开?如果是打开的就保存并关闭这个指定的Excel文件(保存和关闭不影响其他正在打开的Excel文件),期待高手......
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
12#
 楼主| 发表于 2010-2-26 21:36:34 | 只看该作者
本帖最后由 xryacc2 于 2010-2-26 21:43 编辑

你说的有道理,
其实我需要这个功能和效果是因为我做的导出到Excel文件的功能时,为了便于用户分辨,会自动给Excel文件命名,所以在导出前要判定在相同目录下是否有同名文件存在,之前我用dir的方法判定是否有同名文件存在,如果有就询问用户是否删除或重命名原来的同名文件,但是如果同名文件是打开的,(尤其是连续重复导出时会有此现象产生,我的功能是每次导出时都会让Excel文件打开并到激活当前状态),就会发生错误。。。

我本想用其他办法解决此问题,比如(1)导出时让用户自已选择存储目录,(2)或者在发现同名文件后递增式命名,(3)或者不让其有同名文件产生(文件名+日期+时+分+秒),但从用户操作或使用的便捷程度来看,都不太理想

我用过关掉Excel程序(进程)的办法(导出前只要有Excel程序开启就关闭所有开启的excel[麻烦的是如果自动保存,又只能保存到最后一个文件]),但似乎更难令用户接受。
11#
发表于 2010-2-26 20:31:47 | 只看该作者
公司统一用的Office 2000版。
另外我所说的“我改引用了我用的Office 2000版的excel9.0.olb后还是不行(先前引用的excel11.0.olb丢失)”,是指判定(或关闭指定文件)指定文件是否开启的功能效果未达到,而非引用不 ...
xryacc2 发表于 2010-2-26 15:59

xryacc2同志:

      我在使用时确也发现过你说的问题,似乎在Access中用Excel.Application对象打开的Excel表可以比较方便的Access进行管理。否则在Access外打开Excel表后,用Access去管理常常出现一些问题。其原因我不太说的清楚。

      从运用角度来看,既然不用Access打开Excel,那再去用Access关闭它似乎多余。既然要用Access管理Excel,那么从打开他们的时候就该用Access来操作,这样也就顺了,许多问题解决起来也就方便许多。

      以上意见不知妥否,请斟酌。

                                                                吸烟老汉
10#
 楼主| 发表于 2010-2-26 15:59:20 | 只看该作者
公司统一用的Office 2000版。
另外我所说的“我改引用了我用的Office 2000版的excel9.0.olb后还是不行(先前引用的excel11.0.olb丢失)”,是指判定(或关闭指定文件)指定文件是否开启的功能效果未达到,而非引用不行。当然可以改引用的 。
9#
发表于 2010-2-26 11:20:32 | 只看该作者
功能未达到!
(1)我改引用了我用的Office 2000版的excel9.0.olb后还是不行(先前引用的excel11.0.olb丢失)
(2)双击文件夹,出错在“Dim fd As FileDialog”,文件已引用scruun.dll,我重新regsvr32.exe成功后 ...
xryacc2 发表于 2010-2-25 22:02

呵呵,活该,让你改用2003版你不听。
8#
 楼主| 发表于 2010-2-25 22:02:45 | 只看该作者
功能未达到!
(1)我改引用了我用的Office 2000版的excel9.0.olb后还是不行(先前引用的excel11.0.olb丢失)
(2)双击文件夹,出错在“Dim fd As FileDialog”,文件已引用scruun.dll,我重新regsvr32.exe成功后还是出错
(3)我的文件在d:\excel\book1.xls,我在文件夹中输入d:\excel\或d:\excel,文件来源中都有book1.xls,就点打开,但打开的是C:\,我手工打开这个book1.xls,再点关闭,无效;
在文件中输入完整的路径:d:\excel\book1.xls,点“打开”,OK!点“关闭”,无反应!
(如果todaynew试过可行的话,可能就是我的office版本低的缘故了!)还是谢谢todaynew !之前我用捕捉错误的办法判定文件是否打开并实现关闭功能都未见效,也定义过excel.workbook
7#
发表于 2010-2-25 21:03:37 | 只看该作者
本帖最后由 todaynew 于 2010-2-25 21:25 编辑
下标越界等
好像不行。
xryacc2 发表于 2010-2-23 21:25

Function CloseE(strname As String)
'功能:关闭指定Excle文件。
'参数:strname---文件名
On Error GoTo CloseE_Err
Dim xlBook  As Excel.Workbook
For Each xlBook In Workbooks
  If xlBook.Name = strname Then
    xlBook.Save
    xlBook.Close
    Set xlBook = Nothing
    Exit Function
  End If
Next xlBook
Set xlBook = Nothing
CloseE_Exit:
  Exit Function
CloseE_Err:
  MsgBox Error$
  Resume CloseE_Exit
End Function


注意:双击文件夹查找文件。

本帖子中包含更多资源

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

x
6#
 楼主| 发表于 2010-2-25 17:55:25 | 只看该作者
继续关注,继续期待高手。。。
5#
发表于 2010-2-24 22:54:14 | 只看该作者
这个问题我也在关注中~~~
4#
发表于 2010-2-23 21:32:38 | 只看该作者
如果是换为word,又该如何用代码判断某个word文件是否打开,如果打开就关闭这个指定的word文件,但不影响其它打开的word文件呢。

期待答复中~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-25 18:47 , Processed in 0.107397 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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