04. februar 2014 - 15:35Der er
4 kommentarer og 1 løsning
Excel søg og erstat på alle ark
Hej,
Jeg ville gerne søge på f. eks. "for", og erstatte cellen to gange til højre for denne med en anden celle.
Jeg har fundet frem til følgende kode:
Sub SoegOgErstat() ' ' Makro4 Makro ' ' Genvejstast: Ctrl+Skift+C ' Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Cells.Find(What:="For", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(0, 3).Select ActiveCell.FormulaR1C1 = "=RC[2]" Next ws End Sub
Funktion virker på det givne ark, men jeg ville gerne have den til at gøre det på alle ark.
Udover dette kan det nævne at teksten "for" kun forekommer én gang på hvert ark.
Sub SoegOgErstat() ' ' Makro4 Makro ' ' Genvejstast: Ctrl+Skift+C ' Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Activate ' NY Cells(1, 1).Activate ' NY Cells.Find(What:="For", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(0, 3).Select ActiveCell.FormulaR1C1 = "=RC[2]" Next ws End Sub
Når tomt ark behandles opstår fejl - derfor +++ - tilføjelsen
Sub test_1() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Activate ' NY Cells(1, 1).Activate ' NY
On Error Resume Next '<+++ Cells.Find(What:="For", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(0, 3).Select ActiveCell.FormulaR1C1 = "=RC[2]" Next ws End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.