Ошибка Excel VBA 1004 при назначении переменной - PullRequest
0 голосов
/ 28 апреля 2019

Я пишу скрипт / макрос для сравнения значений между существующей электронной таблицей и электронной таблицей импорта. Я пытаюсь определить любые изменения. В рамках этого я ищу имя и идентификатор каждого предмета на листе пробных отпечатков на старом листе. Когда я пытаюсь присвоить имя и идентификатор переменной в цикле, я получаю ошибку 1004

Я пытался изменить способ ссылки на ячейку и порядок, в котором я ссылаюсь на них, но это, кажется, не имеет значения, та же самая строка продолжает вызывать ошибку

Строка с ошибкой является присвоением идентификатора.

            Dim name As String
            Dim id As String


            name = Sheets(proofsheet).Range(destItemColumn & m).Text
            id = Sheets(proofsheet).Range(destIdColumn & m).Text

Основная часть операции выполняется здесь:

proofLRow = Sheets(proofsheet).Cells(Rows.Count, 1).End(xlUp).Row
    For m = 2 To proofLRow
        If Not (InStr(Sheets(proofsheet).Range(destIdColumn1 & m), "TBD") = 0) Then
            Dim name As String
            Dim id As String


            name = Sheets(proofsheet).Range(destItemColumn & m).Text
            id = Sheets(proofsheet).Range(destIdColumn & m).Text

            Dim idFound, nameFound As Boolean
            idFound = False
            nameFound = False
            For k = 2 To prevDataLRow
                searchId = Sheets(sheet).Range(sourceIdColumn & k)
                searchName = Sheets(sheet).Range(sourceItemColumn & k)
                If (searchId = id) Then
                    idFound = True
                End If
                If (searchName = name) Then
                    nameFound = True
                End If
                If (nameFound Or idFound) Then
                    Exit For
                End If

            Next

            If idFound Then
                Sheets(proofsheet).Range(destFlagColumn & m).Value = ""
            ElseIf nameFound Then
                Sheets(proofsheet).Range(destFlagColumn & m).Value = "Replace"
            Else
                Sheets(proofsheet).Range(destFlagColumn & m).Value = "Retired"
            End If

        End If

    Next

По крайней мере, я должен быть в состоянии записать отсканированные данные в окно сообщения для сравнения, но я получаю либо эту ошибку 1004, либо когда я пытаюсь поместить поиск в функцию, я получаю ошибку компиляции о несоответствие типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...