Tag: error handling

显示错误消息并恢复循环

我创build了一个VBAmacros代码来生成不同的收件人,主题,邮件内容,附件等使用各种标准的电子邮件… 代码工作正常,除了附件有问题时。 当macros未能在给定位置find相关文件时,它会popup一个消息,但不会进一步处理循环。 我的问题是,如果有人可以请看看“下一步”和“退出子”应该放在哪里,以便不停止代码循环,生成“错误popup窗口”和“电子邮件草稿”。 提前致谢… 请find下面的代码… Sub Email_Creation_Tool() On Error GoTo ErrMsg Dim wbk As Workbook Dim OutApp As Object Dim OutMail As Object, signature As String Dim i As Range, j As Long Dim objItem As Object With ActiveSheet Set i = Range("A2", Range("A2").End(xlDown)) For j = 1 To i.Rows.Count Set OutApp = CreateObject("Outlook.Application") […]

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

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

vba的错误试图parsing一个空的变体,而不是一个string

在Excel里面,我正在循环一系列看起来像这样的jsonstring。 但有些时候,其中一个值会带有null而不是string。 所以我尝试做一些错误识别,但我没有得到正确的东西。 我想获得一个列表,其中第一个项目将是“工具培训”,并由于空失败types不匹配在第二,我想尝试除了这样的错误或错误。 Dim return_value As String On Error GoTo 22 return_value = jstring("fields")("customfield_18711")("value") 22: return_value = "empty" Resume Next 应该只使用简历? 与下一个? 或者我甚至不使用简历? 这是jsonstring的样子 { "expand": "operations,editmeta,changelog,transitions,renderedFields", "id": "452637", "self": "example.com/rest/api/2/issue/452637", "key": "MP-16098", "fields": { "summary": "my summary", "customfield_18711": { "self": "example.com/rest/api/2/customFieldOption/48120", "value": "Tool Training", "id": "48120" } } } { "expand": "operations,editmeta,changelog,transitions,renderedFields", "id": […]

通过excel vba打开工作簿并复制内容

我想打开一个特定的文件,并从该文件中复制单元格并粘贴到活动工作簿中,但出现错误“438”:对象不支持此属性或方法。 这是我的代码: Sub open_file() Dim open_book As Variant com_name = InputBox("Enter Company Ticker", "Enter Company Ticker") If (IsEmpty(com_name)) Then msg = MsgBox("Please, enter company ticker", vbCritical) Else open_book = Workbooks.Open("E:\Mutual Fund\data\nifty 50\" & com_name & ".xlsx") Windows(com_name & ".xlsx").Activate Range("A:A,H:H").Select Selction.Copy Windows("try.xlsm").Activate Range("A1").Select Selection.Paste End If End Sub

如何摆脱#func! 出现在ms访问的查询表中?

我在查询中创build了一个名为Expr1的字段,使用名为HOME_CARD的另一个字段的中间函数来提取特定的string。 这个HOME_CARD字段有如下的数据: IA1234 IA6787 KL8900 MH5689 这是我试图只提取我的Expr1领域的IA部分,它的工作原理。 Expr1:Mid([HOME_CARD],InStr(1,[HOME_CARD],“IA”),2) 我的问题是,我正在#func! 我的查询结果中的错误除了像这样的数据: KL8900 MH5689 在MS Excel中,我可以通过在我的公式前面使用IFERROR来处理这个问题,所以在没有findIA的情况下,这个单元格只会是空白的。 请帮助我的朋友,我宁愿我的查询结果没有IA的空白(空)比返回一个#func! 先谢谢你。

检查外部closures的工作簿中是否存在工作表

我想testing当前工作簿中的某些工作表是否存在于另一个已closures的工作簿中,并返回一条消息说明哪些工作表正在导致错误。 我不想打开/closures工作簿,所以我试图改变随机单元格中的公式以链接到文件path(fp)的工作簿来testing工作表是否存在。 我已经testing了这个虚拟工作表,我知道不存在于其他工作簿,它的工作原理,但是当我有多个表导致错误,我得到一个“应用程序定义或对象定义的错误”。 在第二次迭代中,我相信error handling的写法会导致崩溃,但我不完全明白这是如何工作的。 我得到的代码是: Sub SheetTest(ByVal fp As String) Dim i, errcount As Integer Dim errshts As String For i = 2 To Sheets.Count On Error GoTo NoSheet Sheets(1).Range("A50").Formula = "='" & fp & Sheets(i).Name & "'!A1" GoTo NoError NoSheet: errshts = errshts & "'" & Sheets(i).Name & "', " errcount = errcount […]

VBA查找处理未知条目

我需要用vlookup函数来分析一些数据。 问题是,当我从第三方软件获取数据(在excel表格中)时,有一些没有赋值(尚未)的条目。 现在,我想以某种方式突出显示这些条目(或者只是明确表示存在错误,就像“vlookup”公式一样),而不停止macros。 任何想法如何做到这一点? (我已经尝试了“错误恢复下一步”和下一行为单元格分配一个默认值,但这会导致vlookup函数失败,即使有适当的分配。) 通过vlookup指令分配的属性的当前代码是: Worksheets("S1").Cells(z-1,22).Value = Application.WorksheetFunction.VLookup(Worksheets("S1").Cells(z-1,1).Value, Worksheets("S2").Range("A1:B1000"),2,False)

QueryTables循环中的VBAerror handling

我从Google财经导入多个CSV文件,并将数据保存到一个工作表。 每当一个URL无效,我希望它去一个error handling程序,它实质上是说“找不到这个信息”,然后继续从networking抓取下一个csv文件。 代码工作正常,直到它到达一个无效的url,并执行error handling程序。 error handling程序第一次完成它的工作,但是当循环继续使用新的URL时,即使URL有效,也会再次出错。 一旦查询表.Refresh错误一次,每个url之后也会出错即使是有效的url。 有没有办法清除错误,并转移到下一个url? Code: Sub getQuotes() For i = 1 To 3775 sym = Worksheets("2").Range("C" & i) lookup = "TEXT;http://www.google.com/finance/historical?q=" + sym + "&startdate=Jun+1%2C+2016&enddate=Aug+5%2C+2016&num=30&authuser=1&output=csv" With Worksheets("Raw Data").QueryTables.Add(Connection:=lookup, Destination:=Worksheets("Raw Data").Range("A2")) .Name = _ " " .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False […]

Excel – 该function是无效的 – 如何摆脱它?

在Excel中,我创build了一个所有存储过程的列表,我已经改变了,有时我也改变了参数types。 我创build了一个过程给我一个过程的参数列表及其数据types。 例如: exec sp_GetSPtables 'dbo.udpProductBulletPointSelectByTier1NoteTypeCode' 给我Parameters: @ Tier1 VARCHAR(10),@ LanguageID INT,@ SeasonItemID VARCHAR(5),@ListNoteTypeCode VARCHAR(MAX),@ CacheDuration INT OUTPUT 当我尝试将上述参数粘贴到Excel中时,出现以下错误: 我怎样才能从Excel中禁用此行为?

VBA在单独的excel实例中捕获错误

我写了一个VBA程序,它打开,刷新,保存并closures大量的包含数据透视表的Excel文件。 代码循环遍历每个报告,在一个单独的excel实例中打开它,并刷新它以及其他任务。 我有一个error handling程序捕获错误产生,如果它不能find该文件,如果该文件是只读的,但我想扩大它捕获错误,可能在刷新/保存步骤中产生的。 问题是因为这些错误发生在Excel的“刷新实例”中,而error handling程序位于Excel的“控制实例”中,所以不会捕获它们。 有谁知道如何捕捉另一个Excel实例中的错误? Errorhandler: errorText = StandardPivots(1, myIndex) Failed(failedIndex) = errorText failedIndex = failedIndex + 1 objXL.Application.DisplayAlerts = False objXL.Quit Resume Next End Sub StandardPivots是一个变体,用于保存要刷新的报告。 失败是一个数组string,将容纳错误的文件的列表objXL指的是我的Excel的“刷新实例” 它需要在一个单独的Excel实例中,因为我有一个方法,用户可以closures需要随时访问的进程(而不是像文件刷新时那样locking) 以防万一它是有用的。 以下是我如何处理最后的错误: If failedIndex = 0 Then OutputMsg = "All " & RefreshType & " Pivots Refreshed" ActiveWorkbook.Sheets("Control").Range("E25").Value = OutputMsg 'Just in case e-mail […]