Как исправить ошибку автоматизации в макро-остановках в CreateObject («System.Collections.Queue»)? Работал на старом компе не новый - PullRequest
1 голос
/ 18 июня 2019

Этот макрос должен подсчитывать и удалять дубликаты, отображая количество дубликатов справа от слова, но останавливаясь на строке Set words = CreateObject("System.Collections.Queue").Я использую несколько макросов, которые используют CreateObject("System.Collections.Queue").Все эти макросы работают на моем старом компьютере, но не на моем новом ноутбуке.Тот же кодВ чем может быть проблема?Я предполагаю, что есть проблема с ("System.Collections.Queue"), поскольку все макросы, которые в настоящее время имеют ошибку, имеют это.Может ли кто-нибудь помочь мне, чтобы я мог исправить все макросы?

    Sub CountAndDeleteDupes()

        Dim cell As Range
        Dim i As Integer
        Dim j As Integer
        Dim count As Integer
        Dim startRow As Integer
        Dim startCol As Integer
        startRow = Selection.Row
        startCol = Selection.Column

        Dim words As Object
        Set words = CreateObject("System.Collections.Queue")
        Dim counts As Object
        Set counts = CreateObject("System.Collections.Queue")

        For Each cell In Selection
            j = 1
            count = 1
            If Not cell.Value = "" Then
                For i = j To Selection.Rows.count
                    If UCase(cell.Value) = UCase(Cells(cell.Row + i,     cell.Column).Value) Then
                    'If UCase(cell.Value) = UCase(cell.Offset(i).Value) Then
                        count = count + 1
                        Cells(cell.Row + i, cell.Column).Value = ""
                        'cell.Offset(i).Value = ""
                    End If
                Next i
                counts.enqueue (count)
                words.enqueue (cell.Value)
            End If
            j = j + 1
            cell.Clear
        Next cell

        For i = 1 To words.count
            Cells(startRow + i - 1, startCol).Value = words.dequeue
            Cells(startRow + i - 1, startCol + 1).Value = counts.dequeue
        Next i

        End Sub

Ошибка времени выполнения '-2146232576 (80131700)': Ошибка автоматизации

...