1

Я очень плохо знаком с макросами.

Я хотел преобразовать следующую формулу в макрос

=IF(COUNTIF($B$1:$B1,$A2)=1,"NA",$A2)

Где в $ B1 будет увеличиваться, и я буду печатать значение в $ B2.

Окончательный результат должен выглядеть следующим образом

1 ответ1

1

Вы просто не хотите дубликатов? Используйте скриптовый словарь.

Dim dict as Object
set dict = CreateObject("Scripting.Dictionary")
Dim i as Long
For i = 2 to 9
   dict(cells(i,1)) = 1
Next
Dim dictKey as Variant
i = 1
For Each dictKey in dict.Keys()
   cells(i,2) = dictKey
   i = i+1
Next

Или в конце:

dim dictVal as string
For i = 2 to 9
  dictVal = cells(i,1)
  If Dict(dictVal).Exists Then
    cells(i,2) = cells(i,1)
  Else: cells(i,2) = "N/A"
  End if
Next

Или если вы хотите грубый способ сделать это

Sub testing()
    Dim i As Long
    Dim j As Long
    Dim c As Range
    For i = 2 To 9
        With Range(Cells(i + 1, 1), Cells(9, 1))
            Set c = .Find(Cells(i, 1), LookIn:=xlValues)
                If c Is Nothing Then
                    Cells(i, 2) = Cells(i, 1)
                Else: Cells(i, 2) = "N/A"
                End If
        End With
    Next
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .