Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: alex15

vba子窗口中如何结束父窗口的过程

[复制链接]
 楼主| 发表于 2011-7-7 11:13 | 显示全部楼层
本帖最后由 alex15 于 2011-7-7 11:14 编辑
sanbe 发表于 2011-7-6 19:13
我就当你结束整个过程处理,你要结束循环,自行更改
先在模块中增加一个全局变量


哈,非常感谢斑竹的指点~~~~~

想问一下
“再在主窗体中加入判断代码

  • If bolExitFor Then
  •         bolExitFor = False
  •         Exit Sub
  • End If


                bolExitFor = False
                Exit Sub
这两句话能否写到其他某个地方,比如过程或者函数,或者其他什么地方,因为这样的话以后凡是使用到progressbar的地方我都可以直接调用那个过程或者函数,这样如果以后我还要在这两句话里面加入其他东西(比如msgbox)的话只需要加到那个过程或函数里面就可以了,不需要再一个个住窗体不同地方去编辑,这样就能够使代码简化,同时避免可能的遗漏编辑的可能。

非常感谢!!



回复

使用道具 举报

发表于 2011-7-7 14:47 | 显示全部楼层
这个没想到有啥好的办法,所以没有替你改动,因为VBA并非面向对象的语言,必须加判断才能结束循环。
可以把函数改成这样,然后直接去函数进行判断,不去判断变量,实际运用没多大差距,离你的要求还是太远


  1. Public Function progressbar(ls_label_string As String, li_percent) As Boolean
  2. If bolExitFor Then
  3.     progressbar = True
  4.     bolExitFor = False
  5.     Unload w_progressbar
  6.     Exit Function
  7. End If
  8. With w_progressbar
  9.         .Caption = ls_label_string
  10.         .FrameProgress.Caption = Format(li_percent, "0%")
  11.         .LabelProgress.Width = li_percent * 222
  12.         DoEvents
  13. End With
  14. End Function
复制代码


然后调用改为:

  1.     If progressbar("Proceeding...", a2 / li_rows_2) Then
  2.         Exit Sub
  3.      End If
复制代码

Copy of VBA .rar

85.9 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2011-7-8 09:51 | 显示全部楼层
本帖最后由 alex15 于 2011-7-8 10:01 编辑
sanbe 发表于 2011-7-7 14:47
这个没想到有啥好的办法,所以没有替你改动,因为VBA并非面向对象的语言,必须加判断才能结束循环。
可以把 ...


哈,谢谢斑竹,已经算很接近了

你说的vba是面向对象,所以不能完美达到我的目标---这个是不是说我在一个对象上w_progressbar结束不了另外一个对象w_main正在执行的sub咯? 而只能回到w_main去结束,是不是这个意思呢? 我感觉归根结底就是这个事情能不能做了,能做,那就能完美达到我目标。
回复

使用道具 举报

发表于 2011-7-8 11:32 | 显示全部楼层
alex15 发表于 2011-7-8 09:51
哈,谢谢斑竹,已经算很接近了

你说的vba是面向对象,所以不能完美达到我的目标---这个是不是说我在 ...

VBA并不是面向对象的语言,至少我不知道怎么做到
回复

使用道具 举报

 楼主| 发表于 2011-7-8 13:15 | 显示全部楼层
sanbe 发表于 2011-7-8 11:32
VBA并不是面向对象的语言,至少我不知道怎么做到

{:091:}恩,明白了,多谢斑竹帮助~~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-30 18:20 , Processed in 0.260303 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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