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