Tag: error handling

捕获连接错误

继续从我的连接查询 ,我现在要捕获任何无法到达的连接,并抛出一个错误信息,指出无法达到相关的连接。 这是我到目前为止的代码,但是,我不知道它是否捕获任何错误: Private Sub btnRefreshConns_Click() On Error GoTo ErrorHandler Dim cn As WorkbookConnection For Each cn In ActiveWorkbook.Connections cn.Refresh Next Exit Sub ErrorHandler: MsgBox "A connection could not be reached" & cn.Name & ": " & cn.Description End Sub 有人可以帮助我,或者让我知道这个代码是否可行?

如何在使用比较时避免在Excel中重复长公式?

我知道这样的事情 =IF(ISERROR(LONG_FORMULA), 0, LONG_FORMULA) 可以换成 =IFERROR(LONG_FORMULA, 0) 不过,我正在寻找一个expression式来避免inputREALLY_LONG_FORMULA两次 =IF(REALLY_LONG_FORMULA < threshold, 0, REALLY_LONG_FORMULA) 我怎样才能做到这一点?

如何使我的VBA代码什么都不做,并移动到下一步/ VBA运行时错误91

我有我的代码的结果的问题:主要想法是,我有一个Word模板,我复制从Excel文件粘贴不同的表。 这些表格有12张不同的表格,分别命名为表格1,表格2等。当这些表格中有一些数据时,代码完美地工作。 这是整个代码: Sub CreateBasicWordReport() 'Create word doc automatically Dim wApp As Word.Application Dim SaveName As String Set wApp = New Word.Application With wApp 'Make word visible .Visible = True .Activate .Documents.Add "C:\Users\MyDesktop\TemplateWordFile.dotx" 'paste supplier name in word Sheets("Sheet1").Range("C1").Copy .Selection.Goto what:=wdGoToBookmark, name:="SupplierName" .Selection.PasteSpecial DataType:=wdPasteText 'Dynamic range Dim Table1 As Worksheet Dim Table2 As Worksheet Dim […]

Windows(ThisWorkbook.Name).Visible = True会导致Excel自动恢复的文件出错

2个月前我已经问过这个问题: 在启用macros的Excel文件上自动保存文件错误 感谢@ YowE3K,当我尝试恢复(重新打开)文件时,他将Workbook_Open事件引荐给我,因为问题正在发生。 今天我深深地关注它,发现我得到的原因: Run-time error '9' Subscript out of range 错误是: Windows(ThisWorkbook.Name).Visible = True 我不知道它是如何变成False的,但是当我试图打开自动恢复文件时,我意识到文件正常打开,我的表单正常打开,但是当表单消失时,错误会通过,文件的名称更改为Microsoft Excel,所有内容都从屏幕上消失,所有的Excelfunction区冻结,我只能进入开发人员选项卡,没有任何改变的情况。 所以我认为,excel以某种方式不能将Windows(ThisWorkbook.Name).Visible转换为True(我的Excel Splash Screen)消失后。 我怎样才能避免这一点? 我不想删除我喜欢的启animation面,但我有时也需要使用自动恢复文件。 微软的页面和XL2003的 类似问题 :改变ThisWorkbook.Windows()。Workbook_BeforeClose事件期间的Visible属性可以防止工作簿closures ,根本没有帮助我。

#名称? 如何读取配方栏来更改错误的公式 – 不要覆盖它

我一直在困扰这个问题很长一段时间。 我已经想出了解决方法,但每个问题都带来更多的问题。 我的macros复制并粘贴从Microsoft Word到Excel的信息,然后格式化Excel表。 有些单元显示#NAME? 错误。 原因是这个单元格在“= ——- List SC”中拷贝。 我需要进入这个单元格,并删除“= ——”,只留下string列表SC。 我不能只是骑在它,因为每次它改变。 它可能是“列表FL”或“列表BP”或任何其他变化。 我不能做一个InStr或任何其他函数,因为VBA代码只读取它作为一个错误,不读取公式栏。 它只会显示“#NAME?” 或识别错误。 有没有人有什么我可以做的build议? 我已经包含了这个问题的图片。 亮点是错误和公式栏。 谢谢! 乔纳森

如何在VBA中用Excel提示出错

我有一些代码在两个单独的工作簿中查找给定工作表名称的值。 我想要做的是当第一个工作簿没有工作表时,而不是下面的提示,它取消/抛出一个错误,并使用error handling去第二个电子表格。 我该怎么做呢? 目前我正在使用这个代码来实现这一点: fFormString1 = "'" & wkBookRef1 & firstShtName & "'!$L$6/1000" fFormString2 = "'" & wkBookRef2 & firstShtName & "'!$L$6/1000" Application.DisplayAlerts = False 'Does nothing to the prompt On Error GoTo tryTwo 'Following only throws error when prompt is canceled ThisWorkbook.Sheets("Place").Range("E53").Formula = "=" & fFormString1 GoTo endTen tryTwo: ThisWorkbook.Sheets("Place").Range("E53").Formula = "=IFERROR(" & […]

types不匹配:Excel VBA

我的程序在这行上出现“types不匹配”错误。 我正在尝试将一系列单元格复制到新的工作表上。 我检查了旧的和新的范围的尺寸,他们是一样的,所以这不是问题。 CSht.Range(CSht.Cells(2, 1), CSht.Cells(LstRow2, LstCol2)).Copy Destination:=Sheets(WS_New).Range(WS_New.Cells(1, 1), WS_New.Cells(LstRow2 – 1, LstCol2))

如何在VBA中获得#N / A值?

我在Excel中有一个数据表,就像: AB ————- 1. aaa 11 2. bbb 22 3. ccc #N/A 4. ddd 44 我已经写了一个VBA函数来获取值(col B)的关键(col A)Ex: =getValue(A1) 在这个例子中,如果我input=getValue(A3) ,函数就抛出#VALUE! 错误。 我正在debugging,并在VLOOKUP函数看到错误。 这是我的代码: Public Function getValue(ByVal key As Variant) 'get value of the cell at column B which has value 'key' at column A on same row column2GetValue = 2 useClosestMatch = False 'error […]

转到块不工作的VBA

总结 :我想做一些基本的error handling 问题 :当我遍历代码时,即使没有错误,我的“错误”块数据也会运行 – 我对VBA中的error handling相当陌生,不明白为什么Error块中的代码不在我指定的代码中进入块。 提前致谢! 代码 : Function getReports() startJournal = Sheets("Runsheet").Range("B5") endJournal = Sheets("Runsheet").Range("E5") If startJournal = 0 Or endJournal = 0 Then GoTo Error End If 'bunch of code Error: MsgBox ("Error Statement") End Function

VBAerror handling查询

我希望有人可以看看,为我整理这个; 我不得不说error handling不是我的强点。 我有下面的代码块,我一直玩弄一些错误句柄,但它不是我真正想要的。 我所要做的是确保如果任何时候出现错误,我已经打开的工作簿和excel实例将优雅地closures。 我确信有比我所提出的更好,更简单的方法来达到这个目标。 Sub QOScode() On Error GoTo Fail Dim app As New Excel.Application app.Visible = False 'Visible is False by default, so this isn't necessary Dim book As Excel.Workbook Set book = app.Workbooks.Add(ActiveWorkbook.Path & "\QOS DGL stuff.xlsx") 'set up error handeling so if any thing happens the instance of excel with […]