Application.match en VBA
Je suis à l'aide de l'Application".match" pour déterminer si la Colonne AD d'une feuille contient "1".
Mais à chaque fois que j'essaie de faire fonctionner mon code, "Else" condition est toujours Vraie. Même si je m'attends à ce qu'il puisse entrer le "Si" l'état, depuis la Colonne AD a une cellule avec une valeur de "1".
Les valeurs des cellules dans la Colonne AD sont principalement des résultats d'une formule, sauf pour AD1, qui a la chaîne "Vérifier si Titile&Auteur Match", et AD2, qui a la valeur "0".
Quel est le problème. Quelle est la solution pour cela?
Je l'espère, vous pouvez suggérer une solution qui permettrait de toujours utiliser le ".match" la méthode. C'est en raison de ma compréhension ".match" méthode renvoie la position relative de la correspondance dans la gamme. Et j'ai l'intention d'utilisation de cette valeur plus tard dans mon code.
Private Sub CmdLocateDta_Click()
Dim SearchColumn As Integer
If Not IsError(Application.Match(1, "AD:AD", 0)) Then
SearchColumn = Application.Match(1, "AD", 0)
MsgBox "Data has been located." & vbNewLine & _
"You can now input the Lending Information below."
Else
MsgBox "There seems to be no such book in the Database." & _
vbNewLine & "Please re-check your input."
End If
End Sub
Vous devez vous connecter pour publier un commentaire.
Vous devez spécifier la plage où à la recherche dans les deux Matchs.
où ws est votre feuille de calcul.
Le problème est la façon dont vous utilisez
Application.Match
.Il devrait ressembler à ceci:
If Not IsError(Application.Match(1, Range("AD:AD"), 0)) Then
Voir plus ici: https://msdn.microsoft.com/en-us/library/office/ff835873.aspx