У меня есть список из 20 000 адресов электронной почты в одном столбце и столбец одинакового размера, который я хочу сравнить. Я хочу отмечать записи в первом столбце, которые также отображаются во втором. Я написал этот код, чтобы это произошло:Сравнение одного столбца ячеек с другим
Sub macro()
Dim i As Long
Dim n As Long
i = 2
For i = 2 To 27934
n = 2
For n = 2 To 20824
If Cells(i, 1) = Cells(n, 7) Then
Cells(i, 3) = 1
End If
Next n
Next i
End Sub
Это говорит мне о несоответствии типа. Я попробовал несколько других вариантов, например, цикл while. Я уверен, что есть миллион других способов сделать это, но я не могу понять это. Кто-нибудь получил минуту, чтобы помочь?
Cells() получает объект, вы должны получить значение от объекта. Попробуйте ячейки (i, 1) .value. Несоответствие типа, вероятно, вы назначаете объекту ячейки значение 1. – Alter
. Одно примечание: вам не нужно назначать цикл 'i = 2' before for, как вы это делаете в начале самого цикла. Таким образом, оставляя строки кода 4 и 6, работают одинаково, но на самом деле они более «эффективны». –
Вы код для меня работает (я точно копирую/вставляю код). Возможно, у вас есть некоторые необычные данные или объекты на вашем листе. Можете ли вы опубликовать более подробную информацию? – nunzabar