Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7313|回复: 11

[已解决]Application.StartupPath没有了???

[复制链接]
发表于 2011-2-2 15:53 | 显示全部楼层 |阅读模式
5学分
工作簿打开时,Application.StartupPath路径存在,可Workbook_Open语句里面有结束excel程序时,Workbook_BeforeClose里面的路径  Application.StartupPath又不存在了,太奇怪了,请教为什么,怎么解决这个问题??

注:如果Workbook_BeforeClose不是经过Workbook_Open里面的语句触发,该Application.StartupPath又存在




Private Sub Workbook_Open()
Dim Str1$:     Str1 = Application.StartupPath
ActiveWindow.Caption = ActiveWorkbook.FullName
    MsgBox Str1 & "开1"
   
    Shell "explorer.exe " & Left(Str1, InStrRev(Str1, "\") - 1), 1
    Application.Quit '关闭e程序
    MsgBox Str1 & "【开】"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Str2$:     Str2 = Application.StartupPath
MsgBox Str2 & "【关】"
End Sub


路径赋值.rar (4.92 KB, 下载次数: 2)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-2-3 16:26 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-2-3 16:37 编辑

截图1296721833.jpg 截图1296721780.jpg
1.代码运行正常呀!
2.你的open事件里面 “Application.quit” 使得文件打开后就关闭了,是不是这个导致你运行不出来呀?

点评

说明,开贴也说了的:open连着BeforeClose后,BeforeClose里面的路径就没有了,所以希望指点  发表于 2011-2-4 04:35
回复

使用道具 举报

 楼主| 发表于 2011-2-3 19:38 | 显示全部楼层
回复 nothingwmm 的帖子

第2个代码不正常呀,msgbox没有把路径显示出来呀
回复

使用道具 举报

 楼主| 发表于 2011-2-4 04:33 | 显示全部楼层
自己来顶自己的问题
回复

使用道具 举报

 楼主| 发表于 2011-2-5 15:23 | 显示全部楼层
自己来顶自己的问题
回复

使用道具 举报

 楼主| 发表于 2011-2-7 05:05 | 显示全部楼层
估计大虾们没有看见问题,自己来顶顶
回复

使用道具 举报

发表于 2011-2-7 10:52 | 显示全部楼层
xdwy81129 发表于 2011-2-3 19:38
回复 nothingwmm 的帖子

第2个代码不正常呀,msgbox没有把路径显示出来呀

你的open事件里的application.quit 在你打开时然后立即就让excel关闭了,所以你的第二段代码没有机会运行。
回复

使用道具 举报

 楼主| 发表于 2011-2-7 21:08 | 显示全部楼层
回复 nothingwmm 的帖子

可是运行了的,因为有msgbox弹出,只是路径为空,所以来提问
回复

使用道具 举报

发表于 2011-2-7 21:44 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-2-7 21:48 编辑

QQ截图未命名.jpg
使用这段代码:

  1. Private Sub Workbook_Open()
  2. Dim Str1$:     Str1 = Application.StartupPath
  3. ActiveWindow.Caption = ActiveWorkbook.FullName
  4.     MsgBox Str1 & "开1"
  5.    
  6.     Shell "explorer.exe " & Left(Str1, InStrRev(Str1, "") - 1), 1
  7.     MsgBox Str1 & "【开】"
  8. End Sub
  9. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  10. Dim Str2$:     Str2 = Application.StartupPath
  11. MsgBox Str2 & "【关】"
  12. End Sub
复制代码

能运行出你想要的结果。
下载你的附件的话,直接运行就都结束了,
看不到你的附件的代码是怎样的,应该不是你贴出来这段吧。
另外的问题是,你的附件解压的文件是.XLS,如果含有宏的应该是xlsm吧,我这是2007版运行结果。如果你是2003的你看看保存为含宏的格式,就应该没问题。
测试时,你先暂时去掉 application.QUIT 这句。



回复

使用道具 举报

 楼主| 发表于 2011-2-8 02:29 | 显示全部楼层
回复 nothingwmm 的帖子

用的2003,所以是xls

如果工作表正常打开没有关闭,而自己选择的关闭,则Workbook_BeforeClose事件里面的路径存在


application.QUIT 这句,肯定是问题的关键,只是不能去掉,我用来发现该路径存在文件删除,然后重启,关闭同意要删除,所以需要关闭也要路径


回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-20 12:32 , Processed in 0.416257 second(s), 22 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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