Tag: 警报

Excel DisplayAlerts奇怪的行为:“一个或多个无效的引用”的错误消息

我有一个Python脚本,使用Excel的COM接口从各种来源的数据填充Excel文件。 这是一个片段: file=win32com.client.Dispatch("Excel.Application") #various manipulation goes here file.DisplayAlerts=False sheet.Delete() file.DisplayAlerts=True 我需要删除其中一个表后填写所有内容,所以我closuresDisplayAlerts,所以它不要求我确认删除。 之后我想再打开,所以用户不会丢失数据。 但是,重新启动DisplayAlerts后,切换工作表会提示给我这样一条消息:“此工作表中的公式包含一个或多个无效的引用,请确认您的公式包含有效的path,工作簿,范围名称和单元格引用”。 我通常不会收到这个消息,我所有的公式都按预期工作。 我怎样才能避免这个消息? 我很确定这个消息与我的图表在数据范围内有很多#N / A值有关(所以点不能被绘制)。 但是我能做些什么来摆脱这些信息,为什么在这三行代码之后出现呢? 此外,只是closures再次切换DisplayAlerts不会提示消息:删除在此发挥作用。 另外,为什么这个消息不只是告诉你它在哪里看到一个问题,是否有一些很好的理由? 消息仅在纸张切换到第一次时出现,并且每次对图表范围进行编辑时都会返回。 此外,它不出现,如果我只是删除表没有closuresDisplayAlerts。

使用VB 2010从Excel中捕获popup窗口,警报和例外

这是我第一次发布在计算器上。 我昨天开始学习VB 2010(虽然我知道一些Ruby),并且已经使用了这个问题了很多,但没有发现太多。 我已经编写了一个程序,它接收一个CSV列表的文件path(所有的.XLS文件)并尝试打开它们。 这些优秀的工作簿被另一个程序标记为不可读取; 我的程序试图捕获导致错误的警告,popup或exception。 它适用于大多数例外(密码保护,无法读取的内容,危险文件等),但一些popup窗口,要求你点击“确定”button继续不被捕获。 也许他们没有被归类为例外或者什么,我很想知道。 至less能得到他们的文本forms是很好的。 这是我的脚本: Private Sub runReportButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles runReportButton.Click Dim Exl As New Excel.Application() Exl.Visible = False Exl.DisplayAlerts = False For Each row As DataGridViewRow In dgvReport.Rows If Not IsNothing(row.Cells(0).Value) Then If row.Cells(0).Value.ToString.Contains(".xls") Then Try 'Open the workbook and attempt to catch […]

获取绕过警报的ID或说明

我正在开发我的macros,可以在没有任何问题的情况下长时间运行完全自动化。 但是有时我会在运行时收到警报(例如, Excel不能显示超过1000个标签 )。 我希望得到关于任何正在进行的问题的通知,例如警报而不停止macros。 众所周知的Application.DisplayAlerts = False对于我来说是不够的,因为我想识别任何types的警报,并且至less在其到期时将其ID或描述放入我的日志文件中。 有什么方法可以获得ID或绕过警报的任何种类的描述?

Excel有“On Alert”的VBA吗?就像“On Error”一样?

我已经发现,popup一个关于pivottable的框实际上是一个“alert”框,而不是“error”框。 Excel是否有任何一种“On Alert GoTo:”就像“On Error GoTo:”一样? 我可以完全禁用警报,但是当用户input在数据透视表中找不到的错误名称时,我无法警告用户。 这也重新分配的东西,我不希望这一点!

值更改警报VBA

所以我试图做一个警报,如果列更改为“496”,它给一个MsgBox一个警报,并且该警报需要说的是发生变化的行,并且值被更改为“496”,我也瞄准把细胞红(填充)。 我还没有插入MsgBox,这个代码是由一个朋友给我帮我在Excel中的数据库中。 而且我在excel vba方面的技能还很差,所以很抱歉。 但我在学习。 Option Explicit Private prevValue As Variant Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range If Not Intersect(Target, Range("G3:G500")) Is Nothing Then For Each cell In Target Me.Cells(cell.Row, "496").Interior.ColorIndex = xlColorIndexNone If cell.Value <> "" And cell.Value <> prevValue Then Me.Cells(cell.Row, "496").Interior.ColorIndex = 3 End If Next cell End […]

Excel VBA – 值&MsgBox

我发布了一个关于这段已经被“Alex Bell”更改的代码的问题,他帮助我编写了一个MsgBox,每次在该特定范围内出现值“496”时出现。 但是由于我对这门语言的了解不多,所以有很多我不能做的事情。 我试图实现的下一步是做同样的事情已经完成,MsgBox警报,如果值是“496”,但现在也是“800”。 那么问题是什么? 问题是,我不能想出一种方法来把这两个条件一起工作,例如它告诉我“496”和“800”在哪里,并填充这两个包含特定值的单元格。 这可能是一个很容易解决的问题,但我又是vba的新手,当我在学校学习vb时,我们并没有那么多的学习。 所以期待更多的关于vba的话题,我正在试着学习。 Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range If Not Intersect(Target, Range("G3:G500")) Is Nothing Then For Each cell In Target 'need clarification 'Me.Cells(cell.Row, "496").Interior.ColorIndex = xlColorIndexNone 'If cell.Value <> "" And cell.Value <> prevValue Then 'Me.Cells(cell.Row, "496").Interior.ColorIndex = 3 'End If If cell.Value = "496" […]

Excel VBA在邮件合并期间提示时自动选​​择是

我希望系统尽可能为用户自动执行。 现在,我有用户单击button时运行的代码。 该代码将数据打算通过邮件合并应用于Word文档。 一切都按预期工作,除了总是有一条消息popup来说 打开这个文档将运行下面的SQL命令: select* FROM'TAGS $' 数据库中的数据将被放置在文档中。 你想继续吗? 我需要保持这个尽可能简单,而不会冒用户select“否”的风险,因为他们感到困惑。 VBA如何自动继续并接受数据放置,就像他们select了“是”一样? 我试着用下面的代码来阻止警报,希望它默认“是”并继续,但没有奏效。 Application.DisplayAlerts = False 这是我的 Sub RunMailMerge() Application.ScreenUpdating = False Dim wdOutputName, wdInputName As String wdOutputName = ThisWorkbook.Path & "\nametags – " _ & Format(Date, "d mmm yyyy") wdInputName = ThisWorkbook.Path & "\nametags.docx" ' open the mail merge layout file Dim wdDoc As […]

macros单元格更改时提醒我值 – popup警报 – EXCEL

我正在寻找创build一个macros来提醒我,当一个单元格的值更改。 这个特定列中的单元格可以具有“OVER”或“UNDER”的值。 我想编写代码来通过一个popup框(消息:“单元格下(上)”)提醒我当值的变化。 谢谢, 帕特里克