没有足够的内存来完成此操作


0

我有一点关于excel的问题。我每次打开一张表都会收到此错误:

在此输入图像描述

之后像10-15分钟。我已经尝试了互联网上列出的几个东西,这里列出了我尝试的东西:添加额外的内存从32位更改为64位并反转,添加虚拟内存,禁用和启用DDE,更改办公室版本,还有一些注册设置。现在我想知道它是否可能是我正在使用的宏,它以一定间隔在两张纸之间切换。起初我认为这是一个问题,如果我把它们从共享中删除,所以我编写了一个脚本,将它们复制到本地,但错误仍然存​​在。

错误处理程序

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

StartSwitchbutton

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

有什么想法吗?


我很抱歉英语,我尽可能多地使用google翻译。
迪伦Rz 2016年

您是否使用Windows任务管理器来查看内存消耗以及excel进程的数量?
Seth 2016年

@seth是的我使用和没有错误消息,但ram使用量和CPU使用量保持不变。我监视它15分钟,直到错误发生但没有突然改变。
Dylan Rz 2016年

如果我理解正确的话,机器有多少内存,有多大的工作书每分钟都会打开?这些书是自己进行计算吗?
Seth

@seth 2张不超过300kb,据我所知,床单不做任何形式的计算。它的所有静态文本。
Dylan Rz 2016年

Answers:


0

您可以使用AutoIt脚本定期重新打开工作簿,也可以使用“显示”文件中的DataSource和一些代码在该文件的工作表之间切换。

  • 使用Data => Existing Connection / Connections => Other Elements(在底部)设置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

我认为它有效。但是每次关闭时都会有一点问题。发生的事情是它每次关闭和打开时都会在左侧获取文件恢复面板。无论如何围绕这个?或者禁用恢复面板?我试过禁用自动保存但是没有用。
Dylan Rz 2016年

嗯〜抱歉,我不确定。:/
Seth 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.