Tag: 刷新

执行function,当一个单元格更改,而不是另一个

我已经在单元格'N'列中计算了值,每个单元格都有以下function(我正在显示第一个适用行N12的函数): =IF(ISNUMBER(F12),QUOTIENT(F12-ProjectStartDate+1,ProjectIncrements),"") 在Excel工作表中,如果列F中的值在同一行上更改,或者ProjectStartDate更改,则需要N12(以及第12行到最后一行N列中的所有其他单元格)刷新该函数,但是如果ProjectIncrement更改。 换句话说,当用户更改ProjectIncrements的值时,我不想刷新N列中的公式。 有没有办法做到这一点?

从SQL Server数据库更新单独的表中的数据后自动刷新Excel 2007透视表

背景: 我有三张Excel表格。 带有数据透视表的汇总表,可以从#2下拉数据 从SQL Server数据库中提取数据的数据表。 (拉类别types和美元值) 有一个button来刷新数据和理想的数据透视表的表。 问题:当我点击button时,数据表刷新正确,但数据透视表没有。 这个工作簿自动运行在凌晨5点,并将结果作为PDF发送给用户,所以我必须找出一种方法,在PDF生成,发送和工作簿closures之前进行数据透视表刷新。 我曾经试过:首先,当button被点击时,它运行: ActiveWorkbook.RefreshAll Application.CalculateFull 它确实正确地更新了数据表,而不是主键。 我努力了: 在上面和下面两个命令之间添加以下命令无济于事: Sheets("Summary").PivotTables("PivotTable6").PivotCache.Refresh Sheets("Summary").PivotTables("PivotTable6").RefreshTable 我已经尝试了两次运行这两个命令(背对背),像这样: ActiveWorkbook.RefreshAll Application.CalculateFull ActiveWorkbook.RefreshAll Application.CalculateFull 希望它能在第一次运行中获得数据,并在第二次运行中有一个成功的数据透视刷新。 没有工作。 我试图欺骗Excel思考我closures并重新打开工作簿,然后重新刷新: ThisWorkbook.Saved = True Workbooks(1).Activate ActiveWorkbook.RefreshAll Application.CalculateFull 我之所以这样做的原因是因为在运行工作簿(透视不刷新)后,我保存并closures。 我重新打开(数据透视仍然是错误的,数据是正确的),我重新运行,(数据是正确的,是一样的),现在枢轴是正确的。 所以我希望能够模拟这个。 在这一点上,我想不出别的什么。 我认为Excel不能做到这一点。 还有一件事。 最初,我们将数据直接从SQL Server数据库传送到数据透视表中,但是我们不断得到这些错误,因此我们将采取不同的方法: 删除了部分: /xl/pivotTables/pivotTable1.xml部分。 (数据透视表视图) 删除了部分: /xl/pivotTables/pivotTable5.xml部分。 (数据透视表视图) 删除logging:从/xl/workbook.xml部分(工作簿)的工作簿属性 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <logFileName>error014800_01.xml</logFileName> <summary>Errors […]

时间戳显示文件上次更新时按F9(只是编辑不够)

我想添加一个时间戳到我的Excel工作表,当文件上次更新时显示给我。 我用这个代码: Private Sub Worksheet_Change(ByVal target As Range) Application.EnableEvents = False Range("D13") = Now() Application.EnableEvents = True End Sub 这个代码的问题是,它显示了最后一次添加值的时间,但是这个值可能不是真实的,因为公式没有被计算 (没有按F9,禁用了自动计算)。 而不是显示上次添加值时,我想显示公式上次更新。 是否可以添加一个时间戳,显示上次重新计算 Excel表单的时间?

EXCEL VBA:打印到PDF文件之前,循环正在工作,但不刷新

大家早上好! 我有一个关于我的VBA代码的问题。 我真的只是想创build一个循环打印基于相同的背景模板(这是在表中AFFIDAVIT CREATOR)从INPUT工作表中取代一些4盒(标签和图像)的PDF文件。 到目前为止,循环工作正常。 唯一的问题:它根据给定的名称(variablesr)生成PDF文件,但在导出为PDF后刷新表单。 结果:具有不同名称的多个文件,但它们都显示相同的:( 有任何想法吗? 这是我的代码: Private Sub TryMe() Dim r As Long Dim strCap As String Dim strCap2 As String r = 4 Do Until Sheets("INPUT").Cells(r, 3).Value = "" strCap = Sheets("INPUT").Cells(r, 3).Value Sheets("AFFIDAVIT CREATOR").Label1.Caption = strCap strCap2 = Sheets("INPUT").Cells(r, 5).Value Sheets("AFFIDAVIT CREATOR").Label2.Caption = strCap2 If Sheets("INPUT").Cells(r, 4) = "OE" Then […]

Excel图表不刷新

一位同事和我在Excel中刷新图表有一个问题。 问题是当源数据更改时,图表不会更新。 这是第一次发生在我身上,我在网上查到任何地方,我没有看到任何类似的报告问题,或提供比vba代码更令人满意的解决scheme。 这是一个简单的图表。 它正确链接到源(没有值硬编码)。 计算为工作簿自动设置。 我真的不知道它从哪里来。 我试图在同一个工作表中设置另一个图表,链接到一个简单的行,这个新的图表具有相同的刷新问题,所以我怀疑它与设置或类似的东西有关,但对于我的生活,我不能find哪些设置可以做到这一点。 每次我想看到它的更新版本,我必须删除系列,并再次添加或重新打开文件。 另一位同事在完全不同的计算机/文件/数据/图表上提出了同样的问题。 编辑:我刚刚在同一个工作表中创build了另一个图表:1,2和01/02,01/03 所以1和2是源数据,date是x轴。 如果我将2改为3,图表将继续显示2.即使在从Excel中重新计算之后。 这似乎影响了我的整个工作簿。 我似乎有一个获得更新图表的最快方法是剪切并粘贴图表。

使用Recordset修改Excel数据透视表并刷新:例外

我在这里处于我的智慧的边缘,并且失去了一整天的时间去做一些不应该那么复杂的事情。 我有一个从Sybase查询返回的logging集。 此logging集用于在Excel中生成数据透视表。 到现在为止还挺好。 我想要更改数据透视表中的值并这样做我使用新值来更新logging集中的某些logging。 我可以在没有任何问题的情况下在RS中进行更新,并在下次迭代时将值保存在RS中。 问题是这些值不会反映在数据透视表中。 我努力了: pivotTable.Refresh(); COMException:PivotTable类的RefreshTable方法失败 pivotTable.PivotCache().Refresh(); ComException:从HRESULTexception:0x800A03EC pivotTable.Update(); 没有例外,但是这些更改不会反映在数据透视表中 我也尝试克隆logging集,并创build一个全新的数据透视表,但虽然Recordset有数据, PivotCache.RecordCount为0 码: var app = ExcelAppHelper.GetExcelApp(); if (app.ActiveCell == null || app.ActiveCell.PivotTable == null) return; PivotTable pivotTable = app.ActiveCell.PivotTable; var rs = (Recordset)pivotTable.PivotCache().Recordset; rs.MoveFirst(); s_lastSelectedPivotTree = new PivotFilterTree(); RecalculateSelectedValues(vmMain); while (!rs.EOF) { if (s_lastSelectedPivotTree.Contains(rs.Fields)) { foreach (var dataFieldName in s_lastSelectedDataFields) […]

Excel正在等待另一个应用程序来完成一个OLE操作

在你明显的去之前: Application.DisplayAlerts = False还没有解决我的问题。 我已经编写了一个VBA过程(在Excel 2010中启动),它围绕包含不同Excel文件的数组进行循环。 循环打开文件,刷新数据,保存并closuresarrays中每个项目的文件。 我已经写了一个错误catch子程序,所以我logging哪些excel文件无法打开/刷新/保存等,所以用户可以手动检查他们。 有些文件相当大,涉及大量的networking数据; 有时我得到一个对话框: Excel正在等待另一个应用程序来完成一个OLE操作 。 我可以使用Application.DisplayAlerts = False来禁用消息,但这大概会禁用所有的警报,所以我无法捕捉错误? 此外,我已经使用该行进行了testing,并且不会停止popup对话框。 如果我按下进入它进行,但几分钟后可能会popup。 有没有一种方法可以停止消息而不停止其他警报? NB。 我的进程有一个Excel的控制实例,它运行VBA并打开要在单独的实例中刷新的工作簿。 谢谢你的帮助 我的代码提取下面是包含刷新元素 Sub Refresh_BoardPivots_Standard() ' On Error GoTo Errorhandler Dim i Dim errorText As String Dim x Dim objXL As Excel.Application Set objXL = CreateObject("Excel.Application") GetPivotsToRefresh ' populate array from SQL For Each i In […]

使用VBA在Excel中刷新对VBProject.VBComponents的更改

我一直在Excel中遇到一些奇怪的怪癖,同时编程删除模块,然后重新从文件中导入它们。 基本上,我有一个名为VersionControl的模块,应该将我的文件导出到预定义的文件夹,并按需重新导入它们。 这是重新导入的代码(问题在下面描述): Dim i As Integer Dim ModuleName As String Application.EnableEvents = False With ThisWorkbook.VBProject For i = 1 To .VBComponents.Count If .VBComponents(i).CodeModule.CountOfLines > 0 Then ModuleName = .VBComponents(i).CodeModule.Name If ModuleName <> "VersionControl" Then If PathExists(VersionControlPath & "\" & ModuleName & ".bas") Then Call .VBComponents.Remove(.VBComponents(ModuleName)) Call .VBComponents.Import(VersionControlPath & "\" & ModuleName & ".bas") Else […]