内存不足,无法完成此操作

内存不足,无法完成此操作

我在使用 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 WriteMode=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

相关内容