Tag: 性能

运行时错误7:内存不足,加速代码

我一直在解决这个问题已经有一段时间了,在这里的人们的帮助下,我设法提出了两个解决scheme。 第一个解决scheme工作,但我不能得到msgbox显示正确的信息。 下面的版本第一次工作, msgbox在msgbox中显示正确的数据,但如果我再次尝试运行代码,它会崩溃excel,并给我一个运行时错误7:内存不足。 它打破了: wsNew.Name = strWS ,它看起来总是试图创build工作表,即使他们已经存在。 我认为这可能与On Error Resume Next, If Len(Worksheets(strWS).Name) = 0 Then 。 无论如何可以加快这个代码吗? 目前它正在通过全球表格中的42行进行查看,但可能会出现数百条的情况,而此时它正在以合理的速度运行,只要我在全局表格中引入更多行,慢一点。 Private Sub CommandButton2_Click() Dim j As Long, strWS As String, rngCPY As Range, FirstAddress As String, sSheetsWithData As String Dim sSheetsWithoutData As String, lSheetRowsCopied As Long, lAllRowsCopied As Long, bFound As Boolean, sOutput As […]

在已启用macros的工作簿中处理大量数据

我有15个左右的工作簿与大量的数据(2000行,约120000活动单元格,我想要使用),我试图创build一个基本上是一个search引擎,有人可以键入一个标准,然后Excel或某事否则返回符合条件的行。 我有这样的工作 伪代码 Map drive (files are stored on sharepoint) Loop workbookdata1 to workbookdata15 Copy data from sheet to new sheet in workbookMAIN Loop through columns, keeping only relevant columns, deleting the rest Loop through rows, deleting row if first cell = blank or "xxx" Next workbookdata Compile all of the data from the newly […]

什么是最有效的方式来转置这个表的所有除了2列(如在这张图片)?

我想在Excel或Access中完成此操作 。 我需要find最有效的方法来做到这一点,否则我的用户不会一直这样做。 最终,我希望它是在最后的forms,以使查询在Access中,但我列出的Excel作为一个选项,因为我总是可以从电子表格导入到Access。 简而言之,我想转置除了前2列以外的每一列。 然后,我要为每个转置的行分配原始对应的item和description 。 我使用的方法是使用Excel中的转置粘贴复制和粘贴第3,4和5行,然后手动将每个项目和描述复制到相应的行,但这对于近400行和50列是不可行的我的用户将与之合作。 我有访问Access / VB的经验,Excel(但在这里没有VB的经验),和SQL。 我想find最快的方法来做到这一点。 我不介意build立查询或进入一些VB代码,我只是真的想这个工作。

用JXLS限制内存中的行数

我想用库来读取xls文件, JXLS看起来非常有用,因为映射可以在XML文件中configuration。 在这种情况下,我有一个非常大的文件的性能问题,是否有可能限制在内存中的行数,使文件一次读取N行? 谢谢。

Excel中的VBA代码非常慢(复制130个单元需要15秒)

在Excel VBA中我有两个表。 我从第一个二复制细胞。 表的结构是不同的,所以我复制逐个单元格。 只有130个单元被复制,仍然需要大约15秒。 我怎样才能加快速度? 看来,如果我从VBA编辑器运行macros,速度更快,但仍然需要至less10秒。 如果我从Excel中运行它,那么我可以看到select和单元格的复制。 所以它很慢。 我应该尝试在单元格而不是副本之间分配值吗? 还是VBA只是慢? Public Sub PasteValueRowsIntoAccountDateTable() Dim rowNumberOfTarget As Integer Dim rowNumberOfSource As Integer Sheets("Utolsó hó").Select Dim myTable As Excel.ListObject Dim myRow As Excel.ListRow Set myTable = ActiveSheet.ListObjects("Utolsó_hó") For Each myRow In myTable.ListRows rowNumberOfSource = myRow.Range.row Sheets("Számla dátum").Select rowNumberOfTarget = Range("Számla_dátum[[#Totals],[Előző Id]]").Value2 + 1 Rows(rowNumberOfTarget & ":" […]

Powershell Excelfind更好的性能替代值

我必须使用COM对象在Excel中通过一个循环(除了与POSH 5一起安装的环境外,没有其他模块允许)。 在每一个循环中,我都必须查看工作表(从variables列表中)一组特定的值,然后根据它们来拉取和追加数据。 我的问题不是那么多的完成,而是每次我在每个工作表中查找Value2时都会遇到性能问题。 随着未来工作表清单的大量增加,以及未来将有越来越多的专栏进行parsing和研究的旧工作表,我该如何使这一工作更加顺利和快速。 我目前做的是以下几点: $Exl = New-Object -ComObject "Excel.Application" $Exl.Visible = $false $Exl.DisplayAlerts = $false $WB = $Exl.Workbooks.Open($excel) Foreach ($name in $names) { $ws = $WB.worksheets | where {$_.name -like "*$name*"} $range = $ws.Range("C:C") $findstuff = $range.find($item) $stuffrow = $findstuff.row $stuffcolumn = $findstuff.column } 这最后一部分是需要很多时间的,每增加一页和多列,我只能看到它在增长,可能需要10-20分钟 可以做些什么来优化呢? 在旁注中:虽然我只需要一行和一列的结果,但在查找值时也有一个小问题,它只显示第一个结果。 如果将来可能需要多个行和列的value2 = $variables ,我该怎么办? (这不太重要,但我问,如果它的相关)

通过VBA提高获取或设置单元格中的值的性能

我设法连接到一个Web服务和检索数据,最后将其插入到工作表中。 看起来像当我执行这个最后的操作时,表单得到焦点,屏幕一直闪烁,直到结束,这对用户来说有点尴尬,而且会损耗性能。 我们正在谈论的是,插入大约1000行与4个不同的parsing列持续约5秒钟。 有没有办法做到这一点“的背景”? 我注意到,基本上我所做的每一个动作(比如读取值或设置它们)都要求将焦点放在具体的表格上,所以我基本上将焦点返回到一旦一切都结束就调用过程的表单。 我的代码如下: For i = 3 To UBound(Data) – 1 If (IsNullOrWhiteSpace(Data(i))) Then Exit Sub End If splitted = Split(Data(i), ";") For j = 0 To UBound(splitted) Cells(i – 1, j + 1).Value = splitted(j) Next Next 非常感谢,我是这个VBA世界的新手。

将excel转换为R,从前一行计算,慢速循环

我有一些已被解码的数据,如下所示: datetime date – day date – month date – year gmt hrs gmt minutes gmt seconds val1 val2 val3 37:00.9 NULL NULL 15 0 30 54 1 1 0 37:01.9 29 9 NULL 0 30 55 1 1 0 37:02.9 NULL NULL NULL 0 30 56 1 1 0 37:03.9 NULL NULL NULL 0 […]

大型Excel文件 – 为数据分析提供了一个更好的平台

我有一个Excel文件W / 600K行项目(约15列)。 打开它,更不用说执行分析是非常慢,我不是一个超级计算机(做一个简单的VLOOKUP三分之一的数据集需要10分钟,往往会崩溃)。 我有Access 2010在我的处置。 a)是否适合input每周数据并返回一些基本汇总统计数据(工厂累计的SKU),b)比Excel工作簿(500k-1M行)快得多?

UDF与Intersect运行缓慢

所以我正在创build一个函数来replace一些手动索引/匹配公式。 请注意,这个function的作品,但我的问题是速度。 所以我有一个数据透视表,6栏和约。 200.000行。 我想这find价值(我不使用pivotfunctions,这意味着这只是一个表的枢轴格式),我发现这运行速度比它在一个普通的数据表。 两者都将从SQL表中导入。 这个公式的一个部分立即运行,但是当我在同一张表中有几百个时,performance会变慢。 那么关于如何加快这一点的任何想法? Function getnum2(ByVal Comp As String, Period As String, Measure As String, Optional BU As String, _ Optional Country As String, Optional Table As String, Optional TableSheet As String) As Double Dim pTable As PivotTable, wTableSheet As Worksheet If BU = "" Then BU = "Group" End If […]