У меня возникла бы проблема с созданием массива, который содержит несколько данных, которые затем будут объединены в один файл. Во время чтения информации из файлов, а затем, помещая их в другой объединенный файл, петля, в которой он находится, обнаруживает ошибку 2042. Я нашел в Add Watch, что он хочет вернуть # N/A, поскольку функция в исходном файле ничего не возвращает. Как я могу избежать остановки макросов? Я нашел способы пропустить эту запись, но я не могу вставить ее в мой текущий цикл из-за недостаточного опыта в их обработке. Он останавливается здесь «Если aOutput (1, outputCol) = aDataFromPivotFiltered (1, filterCol) Затем« Смотрите ниже небольшой бит макроса.VBA 2042 Тип несоответствия - # N/A - Array
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
Я нашел нижеследующее, что было бы хорошо, но на него был нанесен другой макрос.
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
Есть ли кто-нибудь, кто мог бы мне помочь? Он продолжает вызывать головные боли, неважно, сколько статей я читаю в этой теме. Не могу понять.
Когда вы создаете этот массив, 'aDataFromPivotFiltered' пропускают ячейки, которые имеют ошибки в формуле. –
Здравствуйте, Скотт, да, я бы хотел пропустить их, но как закодировать его в моем текущем цикле? –
Вы можете найти описание ошибки. Использовать обработчик ошибок, например, «On Error Goto errOut:» ... подробнее на http://www.cpearson.com/excel/errorhandling.htm. Если вы хотите продолжить цикл, можно использовать «On Error Resume Next» –