我在使用 Excel 时遇到了一个小问题。每次打开工作表时都会出现此错误:
大约 10-15 分钟后。我尝试了互联网上列出的几种方法,以下是我尝试过的方法:添加额外的内存,从 32 位更改为 64 位并反转,添加虚拟内存,禁用和启用 DDE,更改办公版本,还有一些注册表设置。现在我想知道是不是我正在使用的宏在 2 张纸之间以一定间隔切换。起初我以为如果我将它们从共享中拉出来就会出现问题,所以我编写了一个脚本将它们复制到本地,但错误仍然发生。
错误处理程序
Dim RunTime1 As Date
Sub MacroSwitch()
Application.DisplayFullScreen = True
On Error GoTo Errhandler
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
ThisWorkbook.Path & "\Monteursplanning.extern.xls", ReadOnly:=True
ActiveWindow.WindowState = xlMaximized
Exit Sub
Errhandler:
MsgBox "An error has occurred. The macro will end."
Application.DisplayFullScreen = False
End Sub
开始开关按钮
Sub MacroAutoRun1()
Application.DisplayFullScreen = True
RunTime1 = Now + TimeValue("00:01:00")
Application.OnTime RunTime1, "MacroAutoRun1"
If IsWbOpen("Monteursplanning.extern.xls") Then
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
ThisWorkbook.Path & "\Monteursplanning.intern.xls", ReadOnly:=True
ActiveWindow.WindowState = xlMaximized
Windows("Monteursplanning.extern.xls").Activate
ActiveWindow.Close
Application.ScreenUpdating = True
Else
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
ThisWorkbook.Path & "\Monteursplanning.extern.xls", ReadOnly:=True
ActiveWindow.WindowState = xlMaximized
Windows("Monteursplanning.intern.xls").Activate
ActiveWindow.Close
Application.ScreenUpdating = True
End If
End Sub
有什么想法吗?
答案1
您可以使用定期重新打开工作簿的 AutoIt 脚本,或者使用“显示”文件中的数据源和一些代码在该文件的工作表之间切换。
- 使用数据 => 现有连接/连接 => 其他元素(在底部)为 excel 文件设置连接,并选择您的 Monteurplannung.intern.xls,将数据添加到您的第一张工作表中。务必检查属性以设置自动刷新,并编辑要替换的定义,
Mode=Share Deny Write
以Mode=Read
确保文件以只读方式打开。 - 为另一个文件设置第二个连接,并在第二张表上显示该数据。选项允许您指定刷新间隔。
全部基于本文中的信息帮助主题。
之后,您必须设置另一个宏来在这些工作表之间切换。您可以为此回收部分代码。
Sub MacroAutoRun1()
RunTime1 = Now + TimeValue("00:00:01")
Application.OnTime RunTime1, "MacroAutoRun1"
If ActiveSheet.Name = "Tabelle1" Then
ThisWorkbook.Sheets("Tabelle2").Activate
Else
ThisWorkbook.Sheets("Tabelle1").Activate
End If
End Sub