Mes valeurs de cellules sont des chaînes de nombres (toujours supérieures à 5 numéros dans une cellule, c'est-à-dire 67391853214, etc.)
Si une cellule démarre avec trois nombres spécifiques (c'est-à-dire 673 dans une valeur de cellule 67391853214), je veux les données Dans la cellule à remplacer par une valeur différente (si 673 sont les premiers numéros, remplacez la valeur globale de la cellule avec "790") P>
Je sais qu'il y a un moyen d'utiliser une partie de la cellule pour ne utiliser qu'une partie de la cellule valeur mais je ne suis pas à 100% sur la syntaxe. C'est le code actuel que j'ai, mais il cherche spécifiquement "### *", pas les valeurs commencées par "###". Toute aide est grandement appréciée! P> ` p> p> p>
3 Réponses :
Utilisez la fonction gauche () code>, comme indiqué ci-dessous: lastRow = Range("A" & Rows.Count).End(xlUp).Row
colNum = WorksheetFunction.Match("Number", Range("A1:CC1"), 0)
For Each c In Range(Cells(2, colNum), Cells(lastRow, colNum))
If LEFT(c.Value,3) = "614" _
Or LEFT(c.Value,3) = "626" _
Or LEFT(c.Value,3) = "618" _
Or LEFT(c.Value,3) = "609" _
Or LEFT(c.Value,3) = "605" Then
c.Value = "737"
Parfait c'est précisément ce que je cherchais. Merci beaucoup pour votre aide!
@Erin Si cela résolvait votre problème, vous pouvez marquer sa réponse comme acceptée en cliquant sur le chèque (✔) sous les flèches, vous obtiendrez tous les deux une réputation (oui, vous aussi) et le SO Community apprécie;)
Mieux vaut faire une plage remplacer plutôt que de boucle à travers chaque cellule pour la vitesse:
Voici mon problème sur le problème:
Sub SO()
Dim MyString As String
MyString = "614,626,618,609,605"
For X = 1 To Range("C" & Rows.Count).End(xlUp).Row
If Replace(MyString, Left(Range("C" & X).Value, 3), "") <> MyString Then Range("C" & X).Value = "737"
Next
End Sub
Quelque chose comme
s'il est laissé (c.value, 3) = "614" code> ...............Bien posé question pour votre premier!