Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: wmx12345

[已解决]Application.ScreenUpdating = False 遇到一条语句时被置为true,为什么

  [复制链接]
发表于 2011-1-21 09:04 | 显示全部楼层
我这里也是False,是哪一步变的呢?监视一下
回复

使用道具 举报

发表于 2011-1-21 09:14 | 显示全部楼层
    MsgBox Application.ScreenUpdating
    Application.ScreenUpdating = False
    MsgBox Application.ScreenUpdating
    Range("A1:A30").Copy Sheets("sheet2").Cells(1, "A")
    MsgBox Application.ScreenUpdating

这样44是什么结果{:041:}
回复

使用道具 举报

发表于 2011-1-21 09:16 | 显示全部楼层
VBA里面如果有打开表,选择表,激活工作簿等操作的时候,即使禁止屏幕刷新,屏幕还是会闪动的。
回复

使用道具 举报

发表于 2011-1-21 09:21 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-1-21 09:43 编辑
wmx12345 发表于 2011-1-21 00:53
不是的,copy方法,改变了Application.ScreenUpdating的值为ture,
我的目的是不要改变为true,继续保 ...


那段英文的意思大概是这意思吧:
You need to write real VBA code without using Select, Selection or Activate. There rarely a need to select an Object to access it's Properties or Methods.
(在你录制VBA的时候会出现Select,Selection,Activate等语句,)但是你如果真正着手写代码的时候,就不要这些语句了,因为,通常不需要选择对象去获取他的属性或者方法。
这段话与screenupdating 无关。

你的这段话的出处可能是:
http://www.ozgrid.com/forum/showthread.php?t=54129&page=1,原文的回答,原文的意思似乎并不是针对screenupdating问题的,只是指出该段代码里面很多的Select语句问题。
回复

使用道具 举报

发表于 2011-1-21 09:30 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-1-21 09:32 编辑
爱疯 发表于 2011-1-21 09:14
MsgBox Application.ScreenUpdating
    Application.ScreenUpdating = False
    MsgBox Applicatio ...


测试本段代码结果:
true
false
false
但是发现一个问题,无论什么时候把鼠标悬停在某一变量上时,都是显示screenupdating=true
回复

使用道具 举报

发表于 2011-1-21 09:38 | 显示全部楼层
nothingwmm 发表于 2011-1-21 09:30
测试本段代码结果:
true
false

“悬停在某一变量上时,都是显示screenupdating=true”
我不知这是怎么实现的呀{:041:}
回复

使用道具 举报

发表于 2011-1-21 09:41 | 显示全部楼层
本帖最后由 nothingwmm 于 2011-1-21 09:42 编辑
爱疯 发表于 2011-1-21 09:38
“悬停在某一变量上时,都是显示screenupdating=true”
我不知这是怎么实现的呀


F8 逐句测试呀     
99999999999999999999999999999999.gif
回复

使用道具 举报

发表于 2011-1-21 09:41 | 显示全部楼层
MsgBox Application.ScreenUpdating
    Application.ScreenUpdating = True
    MsgBox Application.ScreenUpdating
    Range("A1:A30").Copy Sheets("sheet2").Cells(1, "A")
    MsgBox Application.ScreenUpdating
这样的结果呢
回复

使用道具 举报

发表于 2011-1-21 10:05 | 显示全部楼层
{:231:}可能是COPY影响了其他的事件,此事件代码又打开了屏幕刷新?
回复

使用道具 举报

发表于 2011-1-21 10:05 | 显示全部楼层
Sub aa()
    Application.ScreenUpdating = False      '屏蔽屏幕更新(不需恢复,执行后已经为True)
    Application.EnableEvents = False        '屏蔽打开事件(再次赋值为True后恢复)
    Application.DisplayAlerts = False       '屏蔽显示告警(不需恢复,执行后已经为True)
    Application.AskToUpdateLinks = False    '屏蔽更新链接(再次赋值为True后恢复)
    Application.Interactive = False         '禁止交互模式(再次赋值为True后恢复)
End Sub

Sub bb()
    MsgBox Application.ScreenUpdating
    MsgBox Application.EnableEvents
    MsgBox Application.DisplayAlerts
    MsgBox Application.AskToUpdateLinks
    MsgBox Application.Interactive
End Sub

ScreenUpdating本来就不需要再赋值为true

点评

只是感觉楼主说的很奇怪,没有按常理.所以也想整个测一下  发表于 2011-1-21 10:16
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 01:49 , Processed in 0.445991 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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