Macro pour vérifier et mettre la valeur unique dans une cellule à partir d'une plage de colonnes


1

Je suis très nouveau pour les macros.

Je voulais convertir la formule suivante en macro

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

Où dans le $ B1 sera incrémental et j'imprimerai la valeur en $ B2.

La sortie finale devrait ressembler à celle ci-dessous

enter image description here

Réponses:


1

Est-ce que vous ne voulez pas de doublons? Utilisez un dictionnaire de script.

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

Ou à la fin:

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

Ou si vous voulez la façon brute de le faire

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

Oui, je n'ai pas besoin de doublons, mais j'ai aussi besoin de la sortie dans une nouvelle colonne, cela ne devrait pas changer les valeurs dans la même colonne
Sundhar

Ensuite, comparez la première colonne aux clés dict pour voir si elles sont .Exists Voir mise à jour.
Raystafarian

Bien sûr, je vais essayer la même chose et vous posterai le résultat
Sundhar

Bonjour, @Raystafarian ça me donne la sortie comme ça Oracle N / A java java jsp N / A javascript N / A .net N / A Services de gestion N / A Java N / A Puis je viens de retirer le not de If Not c Is Nothing Then alors ça a fonctionné
Sundhar

Oui, je suppose que je regarde maintenant la not n'est pas correct
Raystafarian
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.