Tag: error handling

在条件格式中使用UDF时,VBA编译器不会中断/陷印错误,也不会出现错误消息

看到新的发展。 我在Excel中有一个奇怪的问题。 我有一个Worksheet_Change事件,我正在使用,我试图debugging它。 我保存程序并将其打开,编译器突然间没有出现错误。 事实上,这根本不算什么! 我会在小组的头部rest一下(接下来的三条线是很好的措施),但这并没有发生。 我想也许事件没有启用…所以,我已经把一个消息框作为代码的第一行之一。 消息框popup….甚至在线上的rest。 这发生在另一个macros的特定行之前,我曾尝试将所有内容复制到一个.txt文件,并粘贴到我的程序的早期版本。 这工作了好几个月,但问题现在又回来了。 编码不是很重要,但我会粘贴下面的踢和咯咯。 这是中止没有错误,我删除了所有的“错误”的或不。 我已经将代码剪切并粘贴到一个新的子文件中,并且工作正常。 我也检查了选项,并选中“打破所有错误”。 什么也没有,即使一个未定义的调用不会抛出一个错误,将停止程序中止。 Private Sub Worksheet_Change(ByVal target As Range) Application.EnableEvents = False Dim aVar() As String Dim iVar As Integer On Error GoTo 0 MsgBox "you changed something" 'this is a msgbox that does pop up during execution, verifying that the sub did […]

我得到“编译错误:找不到项目或库”在一些Excel 2010版本中。 很难testing这个

我的客户正在收到编译错误; 无法find他的Excel 2010版本上的项目或图书馆,但我没有得到2010年的版本。我怎样才能调整这个代码,所以它不会出现。 当错误出现在下面的代码中时,“选中每个单元格”中的文本“单元格”高亮显示: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$9" Then Columns("D:CB").Select Selection.EntireColumn.Hidden = False Application.ScreenUpdating = False Sheet17.Range("E48:CB48").Select For Each cell In Selection If cell = 0 Then Range(cell.Address).EntireColumn.Hidden = True End If Next Application.ScreenUpdating = True Sheet17.Range("b9").Select End If End Sub` 我的客户还在下面的代码中报告了一个错误,其中“Response”字样被突出显示。 这对我来说也不是问题,在我的Excel 2010版本中,任何和所有的帮助都是非常感谢的。 If Sheet1.Range("E18") = 3 Then […]

如何自动停止VBAmacros?

我知道你可以使用Ctrl + Break手动停止正在运行的VBAmacros,但是有什么方法可以让代码自动停止,如果满足某些条件? exit function / exit sub不工作,因为他们只是终止他们被调用的方法。 例如, sub a call b msgbox "a complete" end sub sub b call c msgbox "b complete" 'this msgbox will still show after the `exit sub` in 'c' end sub sub c msgbox "entering c" exit sub 'this will only `exit sub` 'c', but not 'a' or […]

Excel VBA:On Error Goto语句不能在For循环中工作

我试图在excel中循环表格。 这个表格的前三列有文字标题,其余的有标题的date。 我想将这些date顺序地分配给Datetypes的variables,然后根据date执行一些操作 为此,我在myTable.ListColumns上使用了一个foreach循环。 由于前三列没有date标题,我试图设置循环,所以如果在将日志typesvariables赋值为标题string时出现错误,循环会直接进入下一列 这似乎适用于第一列。 但是,当第二列的头被“分配”到datetypesvariables时,macros即使在error handling块内也会遇到错误 Dim myCol As ListColumn For Each myCol In myTable.ListColumns On Error GoTo NextCol Dim myDate As Date myDate = CDate(myCol.Name) On Error GoTo 0 'MORE CODE HERE NextCol: On Error GoTo 0 Next myCol 重申一下,这个错误是在循环的第二轮,在声明中引发的 myDate = CDate(myCol.Name) 任何人都可以解释为什么On Error语句停止工作?

VBA Excel简单的error handling

我尽可能在网上查找(除了Microsoft支持网站,由于某种原因在工作中被阻止)。 我试图简单地跳过一个错误。 我写在这里的代码是简化的,但应该以同样的方式工作。 我的代码应该做什么:我的一个潜艇在循环中创build形状并命名它们(btn_1,btn_2等)。 但在创build它们之前,它会调用一个试图删除它们的子文件,以免创build重复文件。 这个子循环遍历(btn_1,btn_2等),并使用以下命令删除形状: for i = 1 to (a certain number) Set shp = f_overview.Shapes("btn_" & i) shp.delete next 当然,这种形状不可能被删除,因为它根本不存在。 我发现大多数时候,build议的修复方法是在设置形状之前添加(在接下来的错误恢复),因为我得到一个错误,说它不存在。 我已经尝试了循环内循环,等等,如下所示: for i = 1 to (a certain number) On Error Resume Next Set shp = f_overview.Shapes("btn_" & i) shp.delete next 据我了解,如果形状不存在,应该循环遍历,但是我仍然会得到相同的错误,无论我是否继续添加On error resume! 我究竟做错了什么? 编辑:形状确实存在没有错误。

IndexError:数组索引太多

我知道有很多这些线程,但所有这些都是非常简单的情况下,如3x3matrix和这样的事情,解决scheme甚至不适用于我的情况。 所以我试图把G和L1(这不是十一,而是L1)。 数据在我从excel文件中加载的文件中。 excel文件是14×250,所以有14个参数,每个有250个数据点。 我有另外一个用户(对Hugh Bothwell大声呼救!)在我的代码中出现了错误,但是现在又出现了另外一个错误。 所以这是有问题的代码: # format for CSV file: header = ['l1', 'l2', 'l3', 'l4', 'l5', 'EI', 'S', 'P_right', 'P1_0', 'P3_0', 'w_left', 'w_right', 'G_left', 'G_right'] def loadfile(filename, skip=None, *args): skip = set(skip or []) with open(filename, *args) as f: cr = csv.reader(f, quoting=csv.QUOTE_NONNUMERIC) return np.array(row for i,row in enumerate(cr) if i not […]