У меня есть макрос, который отлично работает на одной книге, но выдает «Несоответствие типов ошибки времени выполнения 13», когда я скопировал его в новую рабочую книгу.
Функция макросачтобы прочитать список значений и создать новый список, исключая строки, которые были указаны в коде.
Набор данных, с которым я пытаюсь работать, находится в B96: B110, и мне нужно разместить результатыв списке, начинающемся в ячейке C96.
На данный момент единственными частями кода, которые я изменил, является имя рабочего листа, ссылка на диапазон исходного списка и места, куда должны попасть результаты.
Option Explicit
Private Sub compileList()
Dim arr(), i As Long, list As Object
Dim exclusions(), found As Boolean, j As Long
exclusions = Array("examplestring1", "examplestring2", "(examplestring3)", "Example String 4")
With Worksheets("somemacros")
arr = .Range("B96:B110" & .Cells(.Rows.count, "B").End(xlUp).Row).Value
Set list = CreateObject("System.Collections.ArrayList")
For i = LBound(arr, 1) To UBound(arr, 1)
found = False
With list
For j = LBound(exclusions) To UBound(exclusions)
If InStr(arr(i, 1), exclusions(j)) > 0 Then
found = True
Exit For
End If
Next
If Not found Then .Add arr(i, 1)
End With
Next i
.Range("C96").Resize(list.count, 1) = Application.WorksheetFunction.Transpose(list.ToArray)
End With
End Sub
В исходной книге код работает нормально, однако, когда я пытаюсь выполнить код в новой книге, появляется сообщение об ошибке со ссылкой на следующий фрагмент кода:
Application.WorksheetFunction.Transpose(list.ToArray)
Я уже без проблем скопировал несколько макросов в разные рабочие книги, и, насколько я понимаю, возникает ошибка несоответствия типов, когда типы данных не совпадаютправильно, я совершенно заблудился из-за того, как здесь возникло несоответствие, поэтому, если кто-нибудь сможет объяснить этому новобранцу причину этой проблемы, чтобы он мог избежать этого в будущем, это было бы очень признательно.
Если я пропустил какую-либо важную информацию, пожалуйста, дайте мне знать.
Большое спасибо