- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 VBA 还很陌生,但我通过阅读这些论坛找到了解决方法。我从来没有遇到过 Application.ScreenUpdating 不起作用的问题,并且在网上研究后,我找不到问题的答案。
我在 Excel 中创建了一个每日检查表应用程序,它在每日检查表中提供了月 View 。任务按行排列,您只需为日历上当天的该任务选择是、否或不适用。您可以保存 list ,并将信息复制到单独选项卡中的数据表中。一切都很完美,除了保存信息时,Application.Screenupdating 不起作用,并且用户最终会看到数据表和日历 View 之间的闪烁和来回跳转。
关于为什么 Application.ScreenUpdating 没有更改为 false 的任何想法或指导?我尝试过将其移动到不同的区域,但似乎没有任何效果。
这是保存 list 子项:
Sub Save_Checklist()
Dim Checklist_Date
Dim Completed As Long
Dim Left_to_Complete As Long
Dim Database_Date As Range
Dim Database_Row As Long
Dim bScrUpdate
bScrUpdate = Application.ScreenUpdating
If bScrUpdate = True Then Application.ScreenUpdating = False
Worksheets("Database").Unprotect Password:="youngC"
If MsgBox("This button will save this month's checklist data into the database. All previous information will be overwritten. Would you like to continue?", vbYesNoCancel, "Reset the Calender") = vbYes Then
Checklist_Date = Worksheets("Daily Checklist").Range("E4").Value
Add_to = Worksheets("Daily Checklist").Range("AL1").Value
Range("E55").Select
ActiveCell.Resize(2, Add_to).Select
Selection.Copy
On Error Resume Next
With Worksheets("Database").Activate
Range("A1:A366").Select
Selection.Find(What:=Checklist_Date, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Select
On Error GoTo 0
If Not Database_Date Is Nothing Then Application.Goto Database_Date, True
End With
Selection.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Worksheets("Database").Protect Password:="youngC"
Else
MsgBox ("Please be sure all information is correct before saving it.")
End If
If Not Application.ScreenUpdating = bScrUpdate _
Then Application.ScreenUpdating = bScrUpdate
End Sub
这是我在打开工作簿时运行的代码(我在“将任务添加到月份日历”工作表中进行了分组):
Private Sub Workbook_Open()
Worksheets("Main Menu").Activate
With Worksheets("Add Tasks to Month's Calendars")
.EnableOutlining = True
.Protect Password:="youngC", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
任何帮助都将不胜感激。
谢谢,克里斯
最佳答案
就我个人而言,我只是将 screenupdating 属性设置为 false 而不进行检查,一旦 VBA 完成运行,屏幕就会正常更新。
此外,我认为问题在于,打开工作表时运行的第二段代码不会将 screenupdating 变为 false,因此您将看到您描述的所有 Action 。 Excel 不记得屏幕更新被之前的宏设置为 false,即使它执行了代码,您仍然会将其重新打开。您应该可以通过在第一行将 screenupdating 设置为 false 来解决此问题,修改如下所示。
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Worksheets("Main Menu").Activate
With Worksheets("Add Tasks to Month's Calendars")
.EnableOutlining = True
.Protect Password:="youngC", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
关于vba - Application.ScreenUpdating 不会更改为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422346/
这实际上并不是一个特定于代码的问题,而是更多地满足好奇心(并避免 future 的问题),所以我认为 SO 是一个合适的地方来问它。 我的问题的基础是:VBA 如何处理 Application.Scr
Application.ScreenUpdating = False Application.ScreenUpdating = True 我发现关于第二行的矛盾陈述。 有没有必要? 有人说 Excel
我知道有很多与此主题相关的线程,例如不要使用“选择”或“激活”,或者如果需要使用它,请将其设置为 false。我每次使用“select”或“activate”时都将其设置为False,但仍然不起作用,
我有以下简单代码来关闭一系列打开的工作簿。我刚刚切换到 Excel 2013,在这个新版本中,对于每个未隐藏的工作簿,我的屏幕在 Excel 中不断闪烁一个白色窗口。 如何才能关闭烦人的屏幕闪烁? S
我对 VBA 还很陌生,但我通过阅读这些论坛找到了解决方法。我从来没有遇到过 Application.ScreenUpdating 不起作用的问题,并且在网上研究后,我找不到问题的答案。 我在 Exc
我是初学者,仍然学习有关对MS Excel VBA宏进行编程的知识。我需要社区的帮助,以使用excel上的宏代码解决我的问题。 Sub export_data() With Applicati
我有一个奇怪的问题,即 Excel 在我的开发机器和测试机器上的行为不同。 在我的加载项中,我在几个地方为长时间运行的进程关闭了 ScreenUpdating。在我的机器上这工作正常。在测试机上,我一
我的代码需要 30 多分钟才能运行。在大多数代码运行时,我已将屏幕更新设置为 false,但我不时将其设置为 true,然后直接返回 false。 在 2003 年、2007 年和 2010 年,这允
我正在编写一个小程序,从 SAP 中提取数据并在 Excel 中进行分析。我使用 VBA 完成所有这些工作。 我正在使用一个名为的函数 Application.ScreenUpdating = Fal
我不是经验丰富的 VBA 程序员,我需要社区来查找 Excel 的问题。 我的问题是,在 Excel 中,代码在以下行之后立即停止执行:Application.ScreenUpdating = Tru
这是一个大宏的小问题,我正在阅读日志文件并通过将它们写入多个工作表来准备数据。我不想看到所有这些写作,所以我关闭了屏幕更新,但是我想看到一些进展,所以我不时切换屏幕更新我激活顶部工作表,在一些中写入一
据我所知,Application.ScreenUpdating = true 值将一直保持到设置 Application.ScreenUpdating = false 为止。但这个值的“生命周期”是多
我正在编写一个 C# VSTO Excel 插件。在我的项目中,有更新和合并大量单元格的需求。 为了减少闪烁并提高性能,我之前将 Application.ScreenUpdating 设置为 fals
我有一个 vba 代码,可以将某些单元格从另一个 Excel 工作表复制到事件的 Excel 工作表。我希望工作能够更快地完成。 那么,将 Application.ScreenUpdating 设置为
这样做的意义是什么: Application.ScreenUpdating = False Application.DisplayAlerts = False 它真的能节省那么多时间吗? 最佳答案 这
我正在寻找等效的 VBA-GAS: Application.ScreenUpdating = False 我在我的一个 Google 电子表格中运行一个很长的宏,每次至少需要 30 秒才能完成。如果宏
我正在将一个项目从 iOS7 转换到 iOS8,它使用自定义转换并且需要在它完成加载后捕获模态 afterScreenUpdates:YES 并且看到整个屏幕放大一秒钟并缩放退后,退下。我还看到这种情
我读过 .Select语句强制 Excel 在屏幕上显示这些事件中的每一个,并大大减慢宏。 我想加速一些用记录宏方法编写的旧宏,并且有很多 .Select陈述。 会Application.Screen
我几年前开发的基于 Excel 的长期运行的高端应用程序在 Excel 2007 和 2010 中运行良好,在 Excel 2013 和 2016 中看起来就像业余时间,因为 Application.
我正在向工作表中插入大量数据,但这样做时屏幕会闪烁。在 VBA 和 com 加载项中,我可以设置一个属性来延迟更新,直到它们完成。 在 excel 的 office-js 加载项中是否有与 Appli
我是一名优秀的程序员,十分优秀!