Tag: 内存不足

重新命名一个新的工作表会产生“内存不足”错误 – 为什么?

我试图做一个新的工作表,并给它一个名字使用下面的代码: Sub CREATEWORKSHEETS() For Each PC In ActiveWorkbook.PivotCaches On Error Resume Next PC.Refresh Next PC PvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, "Pivot Data!$AF:$AO") Sheets("P&L Pivot").Select Application.DisplayAlerts = False On Error Resume Next Sheets("MAIN").Delete Application.DisplayAlerts = True On Error GoTo 0 Sheets.Add.Name = "MAIN" End Sub 但是,每当它尝试创build新的“MAIN”工作表时,我总是会收到“内存不足”错误。 将其分解为以下内容: Sheets.Add ActiveSheet.Name = "MAIN" build议重命名操作是罪魁祸首,但我不明白为什么。 有没有人知道为什么这可能会发生?

excel vba运行时错误7:内存不足公式长度大于1024

我开发了一个macros,用户将select标准,我必须在选定的标准上创build公式。 当公式长度大于1024个字符时,出现内存不足错误7。 ActiveSheet.Cells(29, 4).Formula = quar_dchc_high_8_9_10 stringquar_dchc_high_8_9_10的长度是1290个字符。 这是造成一个问题吗? 公式在quar_dchc_high_8_9_10是 =SUMPRODUCT(SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536="6G"),SIGN('[Jan_HC.xls]HC'!$X$2:$X$65536="Female"),SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536=8))+SUMPRODUCT(SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536="6G"),SIGN('[Jan_HC.xls]HC'!$X$2:$X$65536="Female"),SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536=9))+SUMPRODUCT(SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536="6G"),SIGN('[Jan_HC.xls]HC'!$X$2:$X$65536="Female"),SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536=10))+SUMPRODUCT(SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Feb_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536=8))+SUMPRODUCT(SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Feb_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536=9))+SUMPRODUCT(SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Feb_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536=10))+SUMPRODUCT(SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Mar_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536=8))+SUMPRODUCT(SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Mar_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536=9))+SUMPRODUCT(SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Mar_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536=10)) 公式长度是否大于1024个字符导致错误如何解决?

未能分配内存<NoMemoryError>

我想添加一个数组,我从Excel表格,这是一个二维数组[[row1contents],[row2contents],…]检索的值。 我想追加每一个这些行到一个CSV文件,我有代码适用于某些情况下,但在其他人,我得到“失败分配内存错误”。 它说它是一个以.join方法开始的问题 > #the location of the csv that I want to append to csv_filepath = regression_folder + '/Regression.csv' #out_book is the name of the workbook where I get the data to append from @out_book.calculate # Grab output sheet with data from workbook # OUTPUT_DATA_SHEET is name of the sheet in the workbook, sheet […]

Excel VBA:内存超过第二次导入的限制

我广泛使用VBA的32位2013 Excel。 我已经禁用硬件graphics加速和COM加载项,但我仍然努力解决以下问题: 我导入另一个大型工作簿的内容与格式单元格,但没有公式(~3MB的Excel文件)到有问题的Excel工作簿。 在第一次尝试 – 当内容尚未导入时 – 导入成功。 我通过VBA导入内容类似于下面的代码: Application.Workbooks(F_Home).Activate Workbooks(F_Home).Sheets(Sheet1).Visible = xlSheetVisible … Application.Workbooks(F_Source).Activate Workbooks(F_Source).Sheets(S_Source).Cells.Copy Destination:=Workbooks(F_Home).Sheets(Sheet1).Cells Application.Workbooks(F_Home).Activate F_Home是有问题的Excel工作簿,而F_Source是带有我们正在导入的内容的工作簿。当它第一次工作时,然后保存该文件并closures它,然后重新打开该文件,然后尝试第二次时间。 在第二次尝试导入内容时(当内容已经导入时),F_Home工作簿会在复制F_Source内容的行上出现内存不足错误(内存不足,无法完成此操作…) F_Home。 使用进程资源pipe理器我发现Excel进程的虚拟内存大小通常在600mb-700mb之间,但是当我们运行VBA脚本来再次导入内容时,虚拟内存大小突然跳到4GB(这种情况不会发生在第一次,在600MB – 700MB范围内)。 我应该如何解决这个问题? 我不能再做一个解决方法,比如在第二次导入内容之前保存文件,因为使用了文件的时间戳,通过VBA保存文件会使一些用户感到困惑。 感谢您的帮助。

c#visual studio分配更多的内存

操作系统:Windows专业版64位。 处理器:英特尔i5 4460 3.2 GHZ 4CPU视觉工作室2015我(我认为32位)。 8 GB的RAM。 我在c#中有一个代码,它应该从Excel中获取大量数据,分析它,然后再把输出放到Excel中。 我认为我的记忆有问题。 我怎样才能为程序分配更多的内存? 我得到这个错误: mscorlib.dll中发生未处理的types为“System.OutOfMemoryException”的exception其他信息:内存不足以继续执行程序。 下面是程序“WindowsFormsApplication3”的资源监视器和任务pipe理器的图片。 代码停在最后一个命令: Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Workbook workbook = excel.Workbooks.Open(@"" + filepath, ReadOnly: false, Editable: true); Worksheet worksheet = workbook.Worksheets.Item[1] as Worksheet; Range rowdata = worksheet.Rows.Range["A2", converttrue2((arr.GetLength(1)-1).ToString())+(arr.GetLength(0)+1).ToString()];//THIS 1 ACTUALLY WORKS! rowdata.Value = arr; 该代码适用于更小的范围和数组。 我读过,也许我需要使用Visual Studio 64位,它会帮助吗?

System.OutOfMemoryException将具有单个大型DataGrid的页面导入到Excel中(快速修复)

我们使用Excel进行一些特定的枢纽/报告。 为了将数据导入到Excel中,我们有一个简单的DataGrid页面,通过DataSet / DataTable进行绑定。 我们在Excel中使用这个URL“导入外部数据”。 不幸的是,我们有一个查询返回大约100列和40k行。 应用程序服务器只有2GB的RAM,使用的内存跳转了1 gig,然后导致System.OutOfMemoryException。 我打算重写生成DataGrid的页面,通过在DataReader中循环来手动创buildHTML表格,而不是将其全部加载到DataTable中。 我也打算把更多的内存放到服务器上。 我的问题是,我现在怎样才能让这个电子表格更新? 是否有任何快速修复,我可以做的DataGrid暂时让它的工作? 我已经closures了DataGrid的ViewState。

使用VBA导入文本文件时,Excel内存不足警告

当通过VBA导入多个txt文件到Excel中时,会遇到与.Refresh BackgroundQuery:=False相关的内存不足警告。 正确导入的文本文件正好723popup错误。 这是我使用的VBA代码: Sub Sample() Dim myfiles Dim i As Integer myfiles = Application.GetOpenFilename(filefilter:="Text files (*.txt), *.txt", MultiSelect:=True) If Not IsEmpty(myfiles) Then For i = LBound(myfiles) To UBound(myfiles) With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & myfiles(i), Destination:=Range("A" & Rows.Count).End(xlUp).Offset(1, 0)) .Name = "Sample" .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen […]

System.OutOfMemoryException写入Excel时

Public Function GenerateReportAsExcel() Dim workbook = WorkbookFactory.Create(template) template.Close() Dim worksheet = workbook.GetSheetAt(0) // Writing record to worksheet Dim workbookStream = New MemoryStream() workbookStream.Flush() workbookStream.Position = 0 workbook.Write(workbookStream) //throws error if the rocord is more then 500000…runs fine for 400000 Return New MemoryStream(workbookStream.ToArray()) End Function WorkbookFactory正在使用NPOI.SS.UserModel …. 有没有办法增加内存stream的容量? 我得到System.OutOfMemoryException写入500000logging到Excel,但高达400000logging工作正常。 我发现了几个类似的问题,但没有得到任何固体解决这个问题…有人build议使用 workbookStream.Flush()workbookStream.Position = 0,但没有任何帮助…. 感谢您的关注..

更新:VBA错误6在字典中迭代键时溢出

早上好, 我必须在Excel工作簿中的工作表“数据”和“循环计数数据库”。 本质上,我用我们networking文件中的SQL查询刷新“数据”工作表(完美地工作)。 刷新后,我想将任何新值粘贴到“循环计数数据库”表中。 如果信息已经存在,我不想复制它; 我只想添加新的数据。 实际上,我想确保如果我们添加一个新的项目,我们正在执行该项目的周期数,但不删除旧项目的“周期盘点数据库”中的数据。 一般来说,不应该有很多新的项目。 但是,在第一次填充电子表格时,有23080个项目。 这是我的“数据”表的头: ABCD 1 Active Item Description ABC 2 A A-FUL "A" FULL SHIM KIT (2" X 2") B 3 A A-MINI "A" MINI SHIM KIT (2" X 2") C 4 A A-SHIMBOX BLACK BOX FOR 2X2 SHIM KIT X 5 A A-001 A (2" X 2").001" […]

为什么我得到一个内存不足错误做ASP .NET Excel互操作?

这是工作 ..我把处理代码移动到finally块,现在每次都失败。 我有一个testing电子表格,有4个logging,6列长。 这里是我使用它的代码。这是IIS 5(我的电脑)和IIS 6(Web服务器)上的ASP .Net 3.5。 它会在catch之前的下一行发生:“values =(object [,])range.Value2;” 出现以下错误: 11/2/2009 8:47:43 AM :: Not enough storage is available to complete this operation. (Exception from HRESULT: 0x8007000E (E_OUTOFMEMORY)) 有任何想法吗? build议? 我从代码项目中得到了大部分代码,所以我不知道这是否是使用Excel的正确方法。 感谢您的任何帮助,您可以提供。 这是我的代码: Excel.ApplicationClass app = null; Excel.Workbook book = null; Excel.Worksheet sheet = null; Excel.Range range = null; object [,] values = […]