Tag: error handling

error handling循环和用户input

For i = 1 To repNumber TryAgain: On Error GoTo ErrH: repName = InputBox("Enter rep name you want to exclude.", "Name of Rep") .PivotItems(repName).Visible = False Next i ErrH: MsgBox "Try Again" GoTo TryAgain: 它显示一个错误,如果我input数据透视表中不存在的副本名称。 所以我试图使用一个error handling程序让用户再次inputRep名称。 但是在第二次之后,我input了错误的代码,而不是去error handling程序,代码自行终止。 我不确定'On Error GoTo'是否在错误的行中。

在复制行时存在error handling

跟着我的post如果单元格的值匹配UserForm ComboBox列,然后复制到工作表 。 我设法让代码工作,移动检查名称,然后移动到正确的工作表。 我遇到的问题是检查表单是否存在。 如果在combobox的表格和列2中find匹配项,但没有该值的表单,则会崩溃代码。 一旦所有的信息被复制到相关的工作表,我希望它显示一个msgbox告诉用户有多less行数据已被复制到相应的工作表。 Dim i As Long, j As Long, lastG As Long, strWS As String, rngCPY As Range With Application .ScreenUpdating = False .EnableEvents = False .CutCopyMode = False End With On Error GoTo bm_Close_Out ' find last row lastG = sheets("Global").Cells(Rows.Count, "Q").End(xlUp).row For i = 3 To lastG lookupVal […]

在Apache POI中读取一个10 MB的文件

我正在做的这个项目正在尝试读取一个非常大的Excel文件(几百列,大约3000行),并识别一系列字母中的模式。 它在小文件上工作得很好,但是当我尝试使用这个文件运行它时,我收到了一个java.lang.OutOfMemoryError: Java heap space错误,即使我只是试图分析前几行。 该错误似乎在Workbook wb = WorkbookFactory.create(new File(filepath)); 我已经尝试了一些在这个网站上的解决scheme,但没有得到任何成功。 我的代码如下: import java.awt.List; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import org.apache.poi.EncryptedDocumentException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelReader { public int Reader(File file) throws IOException, EncryptedDocumentException, InvalidFormatException { String filepath = file.getPath(); […]

logging插入/删除exception

我有下一个问题,我需要帮助解决。 有三种forms的工作簿和Access in Database。 数据库中有一个名为tblPlanungStatus的表格,用于logging模块是否准备就绪。 所有这三种forms都使用该表来删除或插入一个状态。 Form3大部分时间都有一个exception。 我插入状态,它运行没有错误。 我运行一个查询来计算这种types的logging,它返回1.很好。 在数据库中什么也没有发生,它显示没有添加logging。 我再次运行查询,它说有1条logging。 我运行删除和计数说0.所以它似乎工作。 但在数据库中还是一无所获。 我closures工作簿,再次运行计数,logging消失,在数据库中没有任何显示。 如果logging停留在数据库中,那么在删除它时会起作用,但在closures后它会再次出现。 有时logging不能被添加,有时不能被删除,当重新打开工作簿(我不知道为什么重要)logging要么删除要么添加。 在DB中,logging出现并消失了一定的时间,但并不总是如此。 我一直在这个问题上徘徊了一个多星期。 谁能帮我? 谢谢,迈克

使用Excel VBA控制Word和PDF时的error handling

TL DR版本:我应该在error handling程序中特别寻找哪些错误,使用excel vba运行一个单词模板并保存为单词doco和pdf。 我实际上是第一次把一个macros观的电子表格给一个有文化素养的人,但是不识字的人。 这个电子表格基本上打开了一堆字模板,改变了一些书签,保存为一个Word文档和一个PDF。 我无法承受这个电子表格失败,这使我的error handling。 我以前没有真正推入过多的error handling。 但是我想出了第三方可能遇到的错误列表 input无效(各种) 找不到单词模板 找不到书签 不能保存为Word(各种原因) 不能保存为PDF(各种原因) 没有Microsoft Word 16.0对象库 还有其他的错误我应该抓住? 我该如何处理Not having Microsoft Word 16.0 object library ?

VBA – 如何检查一个string是一个有效的hex颜色代码?

为了防止错误,我需要检查从自定义input框中检索的string是否不是有效的hex颜色代码。 到目前为止,我发现了其他语言的各种解决scheme,但没有为VBA。 处理下面的代码,给一个非hex值input将导致运行时错误。 这对我的项目至关重要,因为我正在处理受保护的工作表。 Public Function HexWindow(MyCell As String, Description As String, Caption As String) Dim myValue As Variant Dim priorValue As Variant priorValue = Range(MyCell).Value myValue = InputBox(Description, Caption, Range(MyCell).Value) Range(MyCell).Value = myValue If myValue = Empty Then Range(MyCell).Value = priorValue End If tHex = Mid(Range(MyCell).Text, 6, 2) & Mid(Range(MyCell).Text, 4, 2) & Mid(Range(MyCell).Text, […]

如何获取数组值的错误编号

我简化了我的示例,使其保持简短,并将以下值放在范围A1到A4中。 A1 = 0 A2 = empty 'blank cell A3 = match(0;0;0) 'to produce #N/A A4 = 4,95 我想赶上在A3触发的错误号码,已经存储在数组中, 我只想打印正值。 test1 =>产生一个运行时错误13,即使我已经检查了IsError 。 test2 =>跳过错误是非常棘手的。 test3 =>在我看来,这是最好的解决scheme,但我不知道如何得到错误号码。 Sub test1() Dim i As Long Dim arr() As Variant arr = ActiveSheet.Range("A1:A4").Value For i = 1 To 4 If Not IsError(arr(i, 1)) And Not IsEmpty(arr(i, 1)) And […]

如何阻止excel运行所有的错误

我有以下代码来处理我的错误: Sub some_sub() On Error GoTo error1 Some code here On Error GoTo error2 Some more code here On Error GoTo error3 final piece of code here Exit Sub error1 MsgBox "Claims followup.xlsm is not open." & Chr(10) & Chr(10) & "Open the file in read/write" error2 MsgBox "Please make sure that the Claims followup […]

IfError不捕捉types不匹配错误vba

我得到了下面的代码行types不匹配错误。 它在一个循环内,直到第一次迭代才会发生错误.Cells(rowStart + i, ISO_revs_col).Value是一个string。 这是有道理的,这将导致一个错误,但我希望.IfError函数只返回“0”string。 如果有人可以告诉我为什么我得到一个错误,而不是“0”,我将不胜感激。 Debug.Print Application.WorksheetFunction.IfError(CLng(.Cells(rowStart + i, _ ISO_revs_col).Value), "0") 提前致谢。

error handling不处理

我写了一个excel的VBA脚本,这个脚本引用了另一个打开的excel文档,用于它的一些数据。 最近我注意到,如果用户意外地closures了这个辅助文档,主脚本就不能工作了。 显然,我需要检查,确保它是开放的,然后再search它。 下面是我提出的validation工作簿是否打开的代码。 如果是这样,我格式化它。 如果不是,我打开它(触发它自己的格式)。 问题来了,因为我的error handling程序捕获“对象所需”的错误号码424.我试图通过指示它只是恢复下一次发生这种情况。 不幸的是,它似乎想要select其他情况,而不是情况424,并停止脚本。 On Error GoTo searchGridsError GridName = Workbooks(SALTname).Sheets(2).Range("B3").value If Verify.FirstOption.value = True Then Set Verify.groupGrid = Workbooks(GridName) If Verify.groupGrid Is Nothing Then Verify.checkForGrids Else formatWorkbook End If End If 下面是我的error handling程序: searchGridsError: Select Case Err Case 18 Verify.clearData Exit Function Case 424 Resume Next Case Else MsgBox […]