Maison >Tutoriel logiciel >Logiciel de bureau >Tutoriel VBA : Méthode de recherche de chaîne et de remplacement de valeur de cellule entre Excel et fichiers texte
Si votre fichier txt utilise un délimiteur de tabulation, alors le code suivant peut répondre à vos besoins
Sub ChangeTxt()
Dim FileN, TxtWb comme classeur, ToFindData comme chaîne
Dim ToSubData As String, c As Range, FirstAdr As String
Si MsgBox ("La cellule à trouver a-t-elle été sélectionnée ?", vbYesNo) = vbNo Then Exit Sub
ToFindData = Selection.Cells(1).Value
ToSubData = Selection.Cells(1).Offset(, 1).Value
FileN = Application.GetOpenFilename("Fichier txt, *.txt", , "Sélectionner le fichier txt")
Si TypeName(FileN) = "Boolean", alors quittez Sub
Workbooks.OpenText Filename:=FileN, consécutifdelimiter:=False, _
Tabulation :=Vrai, Espace :=Faux
Définir TxtWb = ActiveWorkbook
Set c = TxtWb.Sheets(1).UsedRange.Find(What:=ToFindData, _
LookAt :=xlPart, MatchCase :=False, matchbyte :=False, SearchFormat :=False)
Si ce n'est rien alors
FirstAdr = c.Adresse
Faire
c.Offset(, 4) = ToSubData
Set c = TxtWb.Sheets(1).UsedRange.FindNext(c)
Boucle jusqu'à c.Address = FirstAdr
TxtWb.Close savechanges :=True
MsgBox "Remplacement terminé"
Autre
TxtWb.Close False
MsgBox "Introuvable, veuillez sélectionner la cellule que vous souhaitez rechercher."
Fin si
Set c = Rien
Définissez TxtWb = Rien
Fin du sous-marin
Sous s()
Dim c As Range
n = Cellules(Rows.Count, "t").End(3).Row
Définir rg = Range("b6:t"& n)
rg.HorizontalAlignment = xlCenter
t = InputBox ("Entrez le numéro que vous souhaitez trouver")
Pour chaque c en rg
Si c ""” Et c "√" Et c "X" Alors
Si InStr(c, t) >0 Alors
c = "√"
Autre
c = "X"
Fin si
Fin si
Suivant
Pour chaque c en rg
Si c = "√" Alors
c.Font.Bold = Vrai
c.Font.Color = vbBlue
SinonSi c = "X" Alors
c.Font.Bold = Vrai
c.Font.Color = vbRed
Fin si
Suivant
Fin du sous-marin
Plage("A1").Sélectionner
Sélection.Copie
Cells.Find(What:= "*Lighting*", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder :=xlByRows, SearchDirection :=xlNext, MatchCase := _
False, MatchByte :=False, SearchFormat :=False).Activate
Cells.FindNext (Après :=ActiveCell).Activate
Cells.FindNext (Après :=ActiveCell).Activate
Cells.FindNext (Après :=ActiveCell).Activate
Cells.FindNext (Après :=ActiveCell).Activate
Cells.FindNext (Après :=ActiveCell).Activate
Cells.FindNext (Après :=ActiveCell).Activate
ActiveCell.Replace What: = "*Lighting*", Remplacement: = "De nombreux éclairages d'entreprise *30 fois", LookAt:= _
xlPart, SearchOrder :=xlByRows, MatchCase :=False, SearchFormat :=False, _
ReplaceFormat :=False
Cells.FindNext (Après :=ActiveCell).Activate
ActiveCell.Replace What: = "*Lighting*", Remplacement: = "De nombreux éclairages d'entreprise *30 fois", LookAt:= _
xlPart, SearchOrder :=xlByRows, MatchCase :=False, SearchFormat :=False, _
ReplaceFormat :=False
Cells.FindNext (Après :=ActiveCell).Activate
ActiveCell.Replace What: = "*Lighting*", Remplacement: = "De nombreux éclairages d'entreprise *30 fois", LookAt:= _
xlPart, SearchOrder :=xlByRows, MatchCase :=False, SearchFormat :=False, _
ReplaceFormat :=False
Cells.FindNext (Après :=ActiveCell).Activate
ActiveCell.Replace What: = "*Lighting*", Remplacement: = "De nombreux éclairages d'entreprise *30 fois", LookAt:= _
xlPart, SearchOrder :=xlByRows, MatchCase :=False, SearchFormat :=False, _
ReplaceFormat :=False
Cells.FindNext (Après :=ActiveCell).Activate
ActiveCell.Replace What: = "*Lighting*", Remplacement: = "De nombreux éclairages d'entreprise *30 fois", LookAt:= _
xlPart, SearchOrder :=xlByRows, MatchCase :=False, SearchFormat :=False, _
ReplaceFormat :=False
Cells.FindNext (Après :=ActiveCell).Activate
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!