J'ai dans la colonne AJ un grand nombre de chaînes de texte (catégories séparées par; #) exemple est Cell AJ2 a (Comptabilité: et du texte; #Business: et certains texte) dans chaque rangée. Je veux supprimer chaîne spécifique des catégories et tout ce qu'il suit dans la colonne AJ qui commence par « Business » ou « : #Business.Comment tronquer une partie d'un mot avec un caractère générique en utilisant VBA
Répondre
Essayez ce code
Sub test()
Dim vDB, vSplit, s As String
Dim n As Long, i As Long
vDB = Range("aj2", Range("aj" & Rows.Count).End(xlUp))
n = UBound(vDB, 1)
For i = 1 To n
s = vDB(i, 1)
If InStr(s, "Business") Then
vSplit = Split(s, "Business")
s = Replace(s, "Business" & vSplit(UBound(vSplit)), "")
If Right(s, 1) = "#" Then
s = Left(s, Len(s) - 2)
End If
vDB(i, 1) = s
End If
Next i
Range("ak2").Resize(n) = vDB
End Sub
Si je veux tout supprimer avant Business. – cookiemonster
Dim vDB, vSplit, s As Chaîne Dim n As Long, je As Long vDB = Range ("aj2", Range ("aj" & Rows.Count) .End (xlUp)) n = UBound (vDB, 1) Pour i = 1 à n s = vDB (i, 1) Si InStr (s, "Business") Ensuite vsplit = Groupe (s, "affaires") VDB (i, 1) = "affaires" et vsplit (UBound (vsplit)) Else VDB (i, 1) = Vide Fin Si Suivant i Plage ("ak2"). Redimensionner (n) = vDB –
J'ai ajouté d'autres données d'exemple pour tout supprimer avant les opérations. J'ai mis à jour le poste avec un exemple d'image. J'ai mis en surbrillance une rangée .. Il y a deux entreprises, donc quand je cours le code, dans le commentaire, pour supprimer tout avant les affaires, cela fonctionne parfaitement mais il montre seulement une entreprise pour la ligne en surbrillance. – cookiemonster
recherche "vba excel regex" ... c'est le meilleur hit https://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and -loops # 22542835 – jsotola