Tag: error handling

VBAerror handling:无法获取工作表函数类的匹配属性

在我的代码中处理这个错误苦苦挣扎:“无法获取工作表函数类的匹配属性” 我知道错误意味着没有find匹配的function。 问题是,我试图告诉程序只是跳过一个给定的循环迭代,如果找不到匹配这个标准。 我把error handling程序放在可能失败的代码的上面,但它几乎忽略了error handling程序,并且给了我一个错误窗口。 有任何想法吗? n = 2 On Error GoTo SkipRun Do While Sheets("Sheet1").Range("A" & n) <> "" l = Empty layercount = Sheets("Sheet1").Cells(n, 11) startrow = Sheets("Sheet1").Range("B" & n) EndRow = Sheets("Sheet1").Range("C" & n) searchRange = "A" & startrow & ":A" & EndRow l = Application.WorksheetFunction.Match("DLA", Worksheets("Sheet2").Range(searchRange), 0) + startrow – […]

向Excel中写入列表的词典Openpyxl

我试图输出我的数据字典到Excel,但收到一个迭代错误。 字典看起来像: d = {123: [1, 3, 7], 144: [5, 8, 10]} wb = openpyxl.Workbook() wb.get_sheet_names() sheet = wb.active sheet.title = 'Data Output' next_row=1 for key, values in won_bids: sheet.cell(column=1, row=next_row, value=key) sheet.cell(column=2, row=next_row, value=values) next_row += 1 Workbook.close() 获取“TypeError:”int对象不可迭代“错误。

VBA与If匹配时出错

有人能帮我找出这个VBA代码有什么问题吗? 在vba代码工作簿中,BASE在A列中有3000多个项目,每行都有一个名称,例如:“B-Y0011”。 我想在此vba代码“wb”中命名的另一个工作簿中search此项目。 但是这个工作手册“wb”有三张纸。 我必须在其中一张表格中find该项目以及该项目所在的行位置。 它运行了一次,但是当它没有find它时,就出现了错误。 而现在,我试图添加一个错误函数,它给了我另一个错误。 非常感谢 Sub ATUALIZAR_ALOCACAO() Dim caminho As String, Dim j As Variant, Dim plan As Variant, Dim plan1 As Variant, Dim plan2 As Variant, Dim wb As Workbook, Dim ws As Worksheet Application.ScreenUpdating = False Application.AskToUpdateLinks = False Application.DisplayAlerts = False Application.EnableEvents = False mes = InputBox("Qual o mês […]

VBA中的error handling添加和删除工作表

我正在创build一个macros,我想要最后一部分创build一个名为“不可靠性图表”的新工作表,并插入来自最近计算的图表。 但是,第二次运行macros时,表单“不可靠性图表”已经存在,所以Excel无法创build具有相同名称的另一个图表。 因此,在一次运行之后(或者除非用户在每次使用之后手动删除“不可靠性图表”),否则macros观错误。 我怎样才能创build一个error handling程序来删除“不可靠性图表”,然后继续其余的代码重新创build? 以下是我迄今的尝试。 请帮忙! Worksheets.Add().Name = "Unreliability Chart" If Error Then GoTo ErrorHandler: ErrorHandler: Sheets("Unreliability Chart").Delete Worksheets.Add().Name = "Unreliability Chart" Resume Next 任何想法,为什么我的代码不起作用? 对我来说,如果它运行1一切正常,因为它应该。 通过运行2,我应该在行Worksheets.Add()。Name =“Unreliability Chart”得到一个错误,然后进入error handling程序,删除它,然后重新创build它,与macros的其余部分的简历。 显然情况并非如此。

在传输到客户端时报告CSV中的错误

我正在用Spring编写一个服务器端代码,生成一个CSV输出。 我不知道CSV将会有多大(我正在从下游获取源数据),所以我将CSV直接写入HTTP响应输出stream中。 看起来,如果在某些字节之后的某处发生了进程错误,则无法处理该exception,并且对于最终用户来说,CSV文件是正常的。 问题在于它不好,并且由于错误而不完整。 我想我有几个select: 使用Trailer标题和Location来redirect用户的错误。 但是,这似乎不被任何现代浏览器支持 logging错误服务器端,但是这不会给最终用户任何反馈 将整个响应写入服务器上的临时文件,然后stream式传输该文件。 这个选项有性能影响。 在生成的CSVstream的末尾写入错误消息,但这意味着最终用户将不得不在文件的最后查找错误消息,并且可能会错过它 最终用户使用MS Excel打开生成的CSV文件。 是否有任何特殊字符/字节可以写入CSV输出中,以防出现错误导致无效并向最终用户指示错误?

VLOOKUP返回#N / A,尽pipe存在匹配(= A1 = B1 ==“TRUE”)

我使用Google Analytics API将一些数据导出到Excel中。 由于API对可以同时导出的维度和指标数量有限制,因此我必须将这个导出用于不同的查询,这些查询将放置在不同的工作表中。 我想将所有这些信息合并到一张纸上,所以我在每张纸上创build了一个唯一的ID(使用连接),然后做一个VLOOKUP来将每张纸的数据合并到第一张纸上。 它对于99.5%的数据来说就像一个魅力。 但有一些ID正在返回一个#N / A,尽pipe我手动检查了它们是否完全匹配,使用= B1 ='Sheet2'!B191,它返回TRUE。 我生成= CONCATENATE(TRIM(B1),TRIM(C1),TRIM(D1)…)的唯一ID,所以我不认为有空格阻止匹配。 我甚至把这些ID粘贴为“价值”,我仍然得到那些#N / A。 我无法find这种罕见行为的原因! 阿古斯丁

无处不在:应用程序定义的错误或对象定义的错误

我写了一个小的macros,将事务input到我们的ERP系统中,当确定电子表格中定义的第二个位置是否大于零时,事情似乎会被抹黑。 这是我的代码: Option Explicit Sub DblChk() If (MsgBox("Are you sure you are ready to append scrap data to QAD? This cannot be reversed.", vbOKCancel)) = 1 Then Call Scrap Else: Exit Sub End If End Sub Sub Scrap() On Error GoTo ErrorHelper Sheets("Roundup").Select Range("I2").Select Call Shell("C:\Program Files\QAD\QAD Enterprise Applications 2.9.6\QAD.Applications.exe", vbNormalFocus) 'Sign in to QAD […]

小间错误线

我正在寻找一个奇怪的解决scheme,在一个被称为Sub错误的行识别。 这里是一个例子,它不告诉我在被调用的Sub错误的行,但只有主Sub的行。 Private Sub TestThis() On Error GoTo ErrorHandler a1: Call SubError Exit Sub ErrorHandler: Debug.Print "Error: " & Erl & ", " & Err & ", " & Error(Err) End Sub Private Sub SubError() b1: Err.Raise Number:=2000, Description:="MyError" End Sub 我error_line的解决scheme是有一个叫做error_line的全局variables,并简单地通过代码改变它。 你知道这个更好的解决scheme吗?

VBA – END IF运行时错误

我对VBA比较陌生。 而当我在工作表上工作时,我创build了一个代码,根据列行中的条件自动隐藏/取消隐藏行(0 unhide / 1 hide)。 这个相对容易的macros运行良好,直到我添加了一个不同的表。 由于在这张表中没有macros,我不认为这是相关的。 但是现在每次它在END IF函数上给出一个运行时错误,我不知道如何解决它。 可能有一个简单的解决scheme,但我找不到它。 这里是代码: Private Sub Worksheet_Calculate() Application.ScreenUpdating = False Dim LastRow As Long, c As Range Application.EnableEvents = False LastRow = Cells(Cells.Rows.Count, "BA").End(xlUp).Row On Error Resume Next For Each c In Range("BA34:BA56,BA73:BA74,BA76:BA107") If c.Value = 1 Then c.EntireRow.Hidden = True ElseIf c.Value = 0 Then c.EntireRow.Hidden […]

Excel VBAerror handling程序不工作'运行时错误13:types不匹配'

我正在运行下面的Excel文件,其中包含大约10个工作表,每个工作表都包含一个链接到相同数据源的数据透视表。 在我的数据(即“市场(SC)”,“市场(AN)”,“地区(SC)”,“地区(AN)”)中,我有两个版本的“市场”和“地区”以便能够轻松地在它们之间切换。 我设置了代码,首先将相应的切片器放到前面(它们叠加以便隐藏另一个切片器),然后遍历每个枢轴表并交换其他的“市场”和“区域”字段(保持相同的位置等) )。 由于我使用属性“.SourceName”来标识字段,当“值”数据透视字段与我的string进行比较时,循环运行时发生错误。 我已经把“On Error Goto next_fld”放在这里,告诉它跳到下一个字段,但是这只适用于10个工作表中的8个 – 对于另外两个,我得到错误“运行时错误” 13“types不匹配”,debugging屏幕突出显示“***”行。 如果我使用“On Error Resume Next”,它假定If语句为True,并执行大量不需要的操作(混淆各种数据透视表)。 我是自学成才,并没有完全理解error handling程序,但从我遇到的资源来解决这个错误,处理程序应该照顾(这适用于8/10工作表)。 这是我的代码: Sub SwapMktRegFields() Dim ws As Worksheet, shp As Shape Dim i As Integer Dim target As String, repl As String target = Sheet5.Range("E3").value 'Identify current field, use other as repl(acement) Select Case target 'AN slicers selected […]