2010-05-20 7 views
2

Nous gérons certains bogues système dans un système Web et définissons la priorité pour les execs dans une feuille de calcul. Chacun des billets a un "FD-" et quatre numéros comme ID. Le système web a un lien hypertexte qui a ce "FD - ####" à la fin du lien. Le résultat final ressemblerait à ceci - http://www.mytickets.com/FD-####Excel Macro pour rechercher du texte dans la cellule et insérer un lien hypertexte sur la cellule

Je voudrais lancer une macro qui trouve toute la FD - #### et insère un lien hypertexte sur chacun.

Il peut y avoir plusieurs FD - #### dans une seule cellule et il y aura certainement un autre texte dedans.

Je passerais par chacun et ajouter le lien, mais il y a plus de 150 ou plus.

Merci!

+1

Est-il même possible d'avoir plus d'un lien hypertexte dans une cellule dans Excel? Lorsque je sélectionne une partie du contenu d'une cellule, je peux la mettre en gras/italique/etc, mais le bouton Hyperlien est grisé ... ai-je oublié quelque chose? – psmears

+0

hmmm ... vous avez raison. suppose que nous devrons trouver un autre moyen. Ajoutez votre commentaire comme réponse et je le vérifierai. – tnriverfish

Répondre

2

Comme mentionné dans un commentaire, Excel ne semble pas prendre en charge plusieurs liens hypertexte dans une cellule.

Le code ci-dessous fera le remplacement du billet pour lien:

Option Explicit 

Sub loop_over_cells() 
    Dim a_cell 
    Dim replaced As String 

    For Each a_cell In ActiveSheet.UsedRange 
     Debug.Print "old value " & a_cell.Value 
     replaced = RegexReplace(a_cell.Value, "(fd-\d{4}\b)", "=hyperlink(" & Chr(34) & "http://cnn.com/$1" & Chr(34) & ")") 
     a_cell.Value = replaced 
     Debug.Print "new value " & a_cell.Value 
    Next 
End Sub 

Function RegexReplace(search_string, ptrn, rplc) 
    Dim regEx 

    Set regEx = CreateObject("VBScript.RegExp") 
    regEx.Pattern = ptrn 
    regEx.IgnoreCase = True 
    regEx.Global = True 

    RegexReplace = regEx.replace(search_string, rplc) 
End Function 
+0

Vous devez changer le motif en seulement sous pour FD - #### (4 chiffres). –

+0

Merci, lance. Code mis à jour – bernie

Questions connexes