【问题标题】:'object.Activate' not working properly in Excel 2013“object.Activate”在 Excel 2013 中无法正常工作
【发布时间】:2016-01-07 06:30:17
【问题描述】:

我有一个自定义功能区,其中包含两个下拉列表,列出了活动工作簿中打开的工作簿和工作表。单击工作簿,功能区执行 wb.Activate,单击工作表,执行 ws.Activate。简单的。我的工作表都有两个窗格。带有列标题的顶部窗格和带有数据行的下部窗格。当您通过自定义功能区选择工作簿时,所选工作簿会出现并且似乎具有焦点。但是,如果您使用鼠标滚轮垂直滚动数据行,下部窗格会立即展开。窗格顶部向上移动,左侧向左或向右移动。右下角保持原样。窗格会覆盖屏幕上的所有内容。

令人讨厌和丑陋,但也会发生更糟糕的事情。窗口似乎具有焦点。但是,单击活动工作表上方功能区上的按钮,您选择的任何命令都会应用于先前处于活动状态的工作簿!不好玩。通常,在选择工作簿并使用鼠标滚轮滚动后,单击一次会导致屏幕崩溃,因为 Excel 2013 会在整个位置绘制单元格,或者 Excel 会立即从您的屏幕上消失......没有警告或错误.没了。

这只影响 Excel 2013。同样的功能区适用于 Excel 2010。它也影响所有计算机。我有六台机器.. VM 的...双至强服务器...笔记本电脑...工作站。所有人都有同样的问题。而且......它只是我的帐户。使用另一个 Windows 帐户登录,问题不会出现。

这可能是什么原因造成的,我该如何摆脱它?

【问题讨论】:

  • 你可以添加一些代码来帮助你。
  • 这是导致问题的位之一...
  • 这是导致问题出现的代码位之一。功能区上下拉菜单的点击事件... Public Sub r_Workbooks_Select(control As IRibbonControl, id As String, index As Integer) Dim wbook As Workbook, wbname$ If index >= 0 And index
  • 选中的书移到最前面后,将鼠标光标移到活动窗口的下方窗格中,然后单击鼠标滚轮向上或向下滚动。画面乱七八糟。按左上角的“保存”图标。先前具有焦点的工作簿将被保存。实际上,我发现在我执行 wbook.Activate 或 ws.Activate 的代码中的任何地方都会出现问题。 Excel 2013 把事情弄得一团糟。这段代码已经工作了 10 多年,每个版本的 Excel 都发布了......除了 2013 年。

标签: excel vba


【解决方案1】:

如果您在更改工作表/工作簿之前禁用屏幕更新,并在完成后将其重置,您的问题可能会得到解决。

https://msdn.microsoft.com/en-us/library/office/ff193498.aspx

我还建议您使您的代码比微软的糟糕示例更健壮,并确保即使发生错误也重置屏​​幕更新。将 screenupdating 设置为 false 意味着您基本上必须重新启动 excel。

【讨论】:

  • 听起来很有希望,所以我尝试将以下内容添加到功能区代码中... on error resume next hupd = Application.ScreenUpdating Application.ScreenUpdating = False xxx.Activate For t=1 to 10: DoEvents: Next t Application.ScreenUpdating = hupd on error goto 0 ...不幸的是,没有运气。选择下拉菜单,将鼠标移动到出现的窗口,单击鼠标滚轮,然后......瞧......一团糟。单击窗口上方功能区上的按钮。该按钮会影响先前具有焦点的窗口。还有其他建议吗?
  • 这太疯狂了......微软在 Excel 2013 中从 MDI 转到 SDI 时对 Excel 2010 做了什么?
  • 我的直觉是它与 Excel 2013 对窗口边框所做的奇怪事情有关。您会看到它不断地从 Windows 7 Aero 边框转换为扁平的 Windows 8 边框。我的猜测是 Window 发生了一些事情,使 GDI 例程认为窗口的标题栏的高度为零。一切都被渲染得比它应该的要高。是什么导致功能区按钮影响错误的工作簿,这是任何人的猜测。我不知道这里发生了什么。
  • 自2013年以来屏幕更新中断,所以即使你禁用它,你仍然会看到窗口闪烁...... 至于你的问题,可能与MS最近发布的补丁破坏激活有关在某些情况下:answers.microsoft.com/en-us/search/… 但从你的问题来看,我想你不会调用 rng.Hasformula、hasArray 或 NumberFormat,所以你不应该受到影响......
  • 您提到的Office 论坛文章完全符合我的问题。我还发现这个甚至有显示完全相同问题的屏幕截图:link。文章说解决方法是卸载 KB3085502 和 KB3085583。我在这些补丁中找不到任何可能导致此类问题的内容,因此我认为我无法说服我们的 IT 从几千台机器中删除此 KB。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多