VBA 2042types不匹配 – #N / A – 数组

我在创build一个包含大量数据的数组时会遇到问题,这些数据将被合并到一个文件中。 在从文件中读取信息的过程中,然后把它们放到另一个合并文件中,它所在的循环find了2042错误。 我在Add Watch中发现它想要返回#N / A,因为原始文件中的函数不返回任何东西。 我怎样才能避免我的macros停下来? 我find了跳过这个logging的方法,但是由于处理这些logging的经验不足,我无法将其插入到当前的循环中。 它停在这里“如果aOutput(1,outputCol)= aDataFromPivotFiltered(1,filteredCol)那么”看下面的一小段macros。

For outputCol = 1 To UBound(aOutput, 2) For filteredCol = 1 To UBound(aDataFromPivotFiltered, 2) If aOutput(1, outputCol) = aDataFromPivotFiltered(1, filteredCol) Then For filteredRow = 2 To UBound(aDataFromPivotFiltered, 1) aOutput(filteredRow, outputCol) = aDataFromPivotFiltered(filteredRow, filteredCol) Next filteredRow Exit For End If Next filteredCol Next outputCol 

我发现下面,这将是好的,但它是应用另一个macros。

  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 

有没有人可以帮助我呢? 它不停地引起头痛,无论我在这个主题阅读了多less文章。 无法弄清楚。

首先testing错误,如下所示:

 If Not IsError(aDataFromPivotFiltered(1, filteredCol) And Not IsError(aOutput(1, outputCol)) Then If aOutput(1, outputCol) = aDataFromPivotFiltered(1, filteredCol) Then For filteredRow = 2 To UBound(aDataFromPivotFiltered, 1) aOutput(filteredRow, outputCol) = aDataFromPivotFiltered(filteredRow, filteredCol) Next filteredRow Exit For End If End If 

这样,传入数组的任何公式错误都将被跳过。