http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&replyID=434963&ID=149886&skin=1
如上面帖子据说,使用Application.SendMessage(57602)来关闭框架经常会无缘无故中断,如果这个问题无法解决,那能不能通过DynamicWrapper来打开或关闭框架?
或者用Application.SendMessage可以打开框架,用来代替ActivateFrame?
但是close在for循环里是先打开所有框架后,才一个一个关闭的,不是打开1个关闭1个的,是我的用法有问题吗?
sub test()
arr = Array("f1", "f2")
N = UBound(arr) + 1
for i = 0 to N - 1
set f = Application.ActivateFrame(arr(i))
f.close
next
end sub
我的本意是希望打开f1后就关闭f1,接着再打开f2再关闭f2。
但是上面的代码结果是先打开f1、f2,再关闭f1,再关闭f2。

此主题相关图片如下:屏幕快照 2017-09-12 上午10.22.05.png

我的本意是希望打开f1后就关闭f1,接着再打开f2再关闭f2。
但是上面的代码结果是先打开f1、f2,再关闭f1,再关闭f2。
我在f.close前面增加了msgbox arr(i),结果是先打开f1,弹出对话框,按确定后打开了f2,同时关闭了f1,弹出下一个对话框。
感觉是窗口焦点的问题。
call Technic.Close
call ReportPro.close
你这样就能直接关闭两个框架
这样一个一个关闭代码要写很多行,我想用在多框架循环里面。
刚刚试了下在set f = Application.ActivateFrame(arr(i))前面增加一行Application.PeekAndPump即可实现循环逐个关闭框架了。谢谢了
如果要关闭自定义的框架名,比如f1,代码要怎么写呢?