Tag: 性能

在Excel中使用C#closures的XML合并列的性能

我有一个列表,它包含9多个属性,它包含一个子列表。 例如 Public Class BaseClass { public string Item1 { get; set; } public string Item2 { get; set; } public List<ChildClass> Item3 { get; set; } ………… } Public Class ChildClass { public string Item1 { get; set; } public string Item2 { get; set; } public string Item3 { get; set; } } […]

Excel多字/值search

我有一个主服务器列表,这是一个Excel文件。 其中一列列出服务器名称,另一列列出该服务器上的应用程序,一个列表支持该应用程序的列表等。 其次,我有一个30个服务器的列表,我需要在主列表中find(或突出显示),以便我可以确定哪些应用程序与这些特定服务器相关联。 我知道我可以过滤,但是我的列表中有数百个服务器,而且我试图find一个更快的方法来提取30个服务器中列出的所有行。 *数据库不是一个选项,但我希望是。

我的Excel函数能不能按年份和月份按指定的速度偿还债务呢?

我想在Excel中写一个句子,写成:“你将在X年和X月免费,每月$ X。” 并坚持在我的预算底部,以激励自己。 我使用的数值为:总债务(B27)和每月支付的数额(C23)。 只使用这些参考值,而不使用隐藏的单元格,我把以下内容放在一起: =“您将免除债务”和“IF(ROUND(SUM(B27 / C23),0)<12,0,ROUND(SUM(B27 / C23)/ 12,0))&”years and“&(IF (IF(MOD(ROUND(SUM(B27 / C23),0),12)= 0,0,(SUM(ROUND(SUM(B27 / C23),0), – (12 * ROUND(SUM(ROUND(SUM (B27 / C23),0)/ 12),0)))))> 0,IF(MOD(ROUND(SUM(B27 / C23),0),12)= 0,0,(SUM(ROUND(SUM (B27 / C23),0), – (12 * ROUND(SUM(ROUND(SUM(B27 / C23),0)/ 12),0))))),(SUM(IF(MOD(ROUND(SUM( B27 / C23),0),12)= 0,0,(SUM(ROUND(SUM(B27 / C23),0), – (12 * ROUND(SUM(ROUND(SUM(B27 / C23),0)/ 12),0))))+ 12))))&“month at”&DOLLAR(C23)&“per […]

batch file删除csv中的列

我写了这段代码,所以我可以从csv文件中删除一列。 @echo off setlocal enableextensions enabledelayedexpansion type nul > tmp.txt SET /A COUNT=0 for /F "tokens=*" %%A in (d.csv) do ( set LINE="%%A" set /A COUNT+=1 for /F "tokens=1,2,3,4,5,6,7,8,* delims=," %%a in (!LINE!) do ( set row[0]=%%a set row[1]=%%b set row[2]=%%c set row[3]=%%d set row[4]=%%e set row[5]=%%f set row[6]=%%g set row[7]=%%h ) echo !row[0]!,!row[2]!,!row[3]!,!row[4]!,!row[5]!,!row[6]! >>tmp.txt […]

用于查询Excel的多个打开命令oledb连接

Private Function CreateConnString(ByVal Str As String) As String Return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Str & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1""" End Function … For Each sMatl_Num As String In alMaterialNumbers ifileNo = 1 dbConnection.ConnectionString = CreateConnString(sExcelDBPath) dbCommand.Connection = dbConnection dbCommand.CommandText = "SELECT [col1], [col2], [col3], [col4], [col5], [col6] FROM [sheet$] WHERE [material]='" & sMatl_Num & "'" & " […]

VBA代码每天第一次运行缓慢

我有一个问题,我认为这是与networking驱动器,但现在我已经testing,而不是问题。 有2000个文件(总共328MB)匹配,在testing中使用,大约需要1.4秒来完成这个任务,除了每天的第一次,从30秒到60秒。 我认为迪尔是造成这个问题,但其确切地说在循环内部是缓慢的。 文件caching会导致这个问题? 有没有更好的方法来快速加载大量文件的第一行 'Get All Filenames sAllFiles = Dir("C:\Folder\" & sFile & "??.???") 'Loop through each File Do While Len(sAllFiles) > 0 sCurrentFileName = sAllFiles sCurrentFilePath = "C:\Folder\" & sCurrentFileName 'Read 1st line from each file Open sCurrentFilePath For Input As #1 Line Input #1, sFirstLine Close #1 vRowData = Split(sFirstLine, "~") '(Write […]

加快VBA代码

我对我的代码感到困扰,它基本上与两个工作簿的参考号码相匹配,并将相关信息写入新的工作表。 首先,让我给一些关于尺寸的细节。 其中一本工作簿有1987行66列,另一本有15645行13列。 代码之后的新工作表具有5643行和41列。 平均代码运行2分钟和10秒,在我的情况下太长。 我已经尝试了几件事情来加速我的代码,但是,它没有成功。 非常感谢任何帮助! Sub take_swap_values() With Application .ScreenUpdating = False .DisplayStatusBar = False .Calculation = xlCalculationManual .EnableEvents = False End With Dim h, f As Long Dim r As Integer h = Application.WorksheetFunction.Count(Workbooks("swap.xlsx").Sheets("Sheet3").Range("$B$2:$B$1987")) f = Application.WorksheetFunction.Count(Workbooks("swp_fwd.xlsm").Sheets("Sheet1").Range("$A$2:$A$5645")) Workbooks("swap.xlsx").Activate Workbooks("swp_fwd.xlsm").Activate Workbooks("swp_fwd.xlsm").Sheets("Sheet2").Cells(1, 1).Value = Workbooks("swp_fwd.xlsm").Sheets("Sheet1").Cells(1, 1).Value For i = 1 To h For j […]

VSTO插件慢启动

我的VSTO Excel插件在我客户的一个站点(〜2分钟)内每个缓慢启动。 我已经在客户端和我的本地开发安装上运行vsperf 。 比较这两个报告,我发现客户端的安装花费了大量的时间在NtUserPeekMessage (甚至超过MSO.dll ),而NtUserPeekMessage几乎没有在我的注册。 在我的VSTO插件中花费的时间相对较less,而且看起来并不是瓶颈。 调用函数: NtUserPeekMessage whNtUserPeekMessage Wow64SystemServiceEx ServiceNoTurbo RunCpuSimulation Wow64LdfpInitialize LdrpInitializeProcess `string' LdrInitializeThunk 有没有人也遇到过这个问题? 还有什么我可以寻找或尝试隔离慢启动? [编辑] 客户声称,一个月前开始启动缓慢。 在此之前,补充开始罚款。 该问题似乎影响其networking中的所有机器。 事情我得到他们到目前为止testing:修复办公室,VSTO,重新安装,禁用所有其他插件,安装在一台新的机器上。

与访问Microsoft.Office.Core.DocumentProperties性能问题

我有一个Excel COM插件读取工作簿的CustomDocumentProperties部分。 这就是我如何从CustomDocumentProperties部分访问特定的条目 DocumentProperties docProperties = (DocumentProperties) xlWorkbook.CustomDocumentProperties; docProperty = docProperties[propName]; 问题是当CustomDocumentProperties包含超过8000个条目时,这个代码的性能非常糟糕。 我已经运行CPU分析器,它显示下面的行花费了一分多钟。 docProperty = docProperties[propName]; 有谁知道如何提高访问DocumentProperties的性能? 谢谢!

Excel速度和大小问题

我在一家大公司的共同基金部门实习,从事收入模式工作。 该模型已经开发,并且是巨大的。 我需要从速度(开放,保存,closures,计算)和效率(更好的公式可能会更好)方面进行优化。 问题是:这很慢。 它有超过42个工作表,现在是23 MB。 它链接到我的驱动器上的许多其他excel文件,但不链接到networking硬盘驱动器。 它使用'vlookup','sumif'和'sum'很多。 所有工作表都通过公式链接到所有其他工作表。 为了说明问题,excel文件基本上追踪共同基金(超过50种)和子类别的数量。 例如,我们可以获取实际的资金performance,资金收入,pipe理下的资产以及其他20多个属性的实际数据。 我的excel表格从其他excel表格中获取数据,并将所有数据汇总在一起,这样我们就可以预测未来4-5年的收入和收入。 为了给你的规模,工作簿中的总“sumif”公式是113000,是的,这是正确的..超过100000! 同样的vlookups是53000 … 我已经切换到手动模式的计算,删除所有的macros(他们很less,这只是切换标签,也试图保存为二进制文件(二进制使得它快三倍,但我很担心,如果文件因为我们正在添加东西,会变得更大,二进制是增加macros或甚至更多的查找的障碍…?) 主要问题在于开放和保存。 只有一些vlookups正在查找其他vlookups收集的数据。 总之我的问题是: 1)二进制文件格式的效率如何(已经在各种论坛上阅读过,但在向我的部门推荐之前仍然需要百分之百确定)2)我们可以安全地调用vlookups作为罪魁祸首,因为它们超过50000 3)正在分裂文件,可以说每个10个选项卡,比一个有42个选项卡的Excel更有效率? 是否知道有所作为? 假设我没有改变公式方面的任何东西,而且一旦我将它分开,我只是在这里引用新的Excel表格。 这也是劳动密集型的,因为这似乎也是一个很大的任务。 所以在冒险之前,我需要确定,如果这是正确的思维过程。 非常感谢您的帮助。 阿树