VBA 代码显示错误 2042 原因不确定
Posted
技术标签:
【中文标题】VBA 代码显示错误 2042 原因不确定【英文标题】:VBA code showing error 2042 for reason unsure 【发布时间】:2012-12-07 10:49:20 【问题描述】:我有一个变量 fila
,其中包含 Excel 值的整行
问题是当在 Excel 中我有 #N/A
时,VBA 会像 Error 2042
一样采用该值。
我无法将该值分配给valor
并且会产生错误。到目前为止一切正常,现在我正在尝试定义一个 On Error Goto
以进入 For
循环中的下一个迭代,但我确实 不 知道为什么 VBA 不处理错误.
Do While Not IsEmpty(ActiveCell)
txt = ActiveCell.Value2
cell = ActiveCell.Offset(0, 1).Value2
fila = Range("C20:F20")
For j = 1 To UBound(fila, 2)
On Error GoTo Siguiente
If Not IsEmpty(fila(1, j)) Then
valor = fila(1, j)
cmd = Cells(1, j + 2).Value2
devolver = function1(cmd, txt, cell, valor)
arrayDevolver(p) = devolver
p = p + 1
End If
Siguiente:
Next
Loop
【问题讨论】:
为什么使用Value2? (没听说过) 它比 Value 更有效,因为 value 检查值是数据还是货币类型msdn.microsoft.com/en-us/library/office/… 【参考方案1】:这不是 VBA 错误 - 因此错误处理不会捕获它。要检测此问题,请在写入数组之前使用IsError
下面的简单代码处理了这个测试的Error 2042问题
Sub Test()
Dim varIn As Variant
[a1].FormulaR1C1 = "=NA()"
If IsError([a1].Value2) Then
varIn = "skip record"
Else
varIn = [a1].Value2
End If
End Sub
【讨论】:
嘿谢谢它解决了我的问题我不知道“错误 2042”它是一种不同的错误。以上是关于VBA 代码显示错误 2042 原因不确定的主要内容,如果未能解决你的问题,请参考以下文章