Avatar billede VildeHest Praktikant
04. februar 2014 - 15:35 Der 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.

På forhånd tak!
Avatar billede kabbak Professor
04. februar 2014 - 17:29 #1
Prøv denne

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
Avatar billede VildeHest Praktikant
05. februar 2014 - 08:29 #2
Når jeg prøver at køre den får jeg runtime error 91:
Object variable or With block variable not set.

Når jeg debugger markeres:
Cells.Find(What:="For", After:=ActiveCell, LookIn:=xlFormulas, _
                LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, SearchFormat:=False).Activate

Nogle forslag?
Avatar billede supertekst Ekspert
05. februar 2014 - 10:32 #3
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
Avatar billede VildeHest Praktikant
05. februar 2014 - 13:58 #4
Mange tak supertekst, det fungerer!

Svar for point
Avatar billede supertekst Ekspert
05. februar 2014 - 14:00 #5
Fint og selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 17:57 Outlook Af ole1949 i Office & Kontorpakker
I går 17:41 windows cd er ønskes Af bjarnebif i Andet software
I går 17:39 Smartcard Af melli i Fjernsyn & projektorer
I går 15:07 Sammenlægning af partitioner Af Malm i PC
I går 13:59 Lopslag Af Casmic i Excel


White paper
TIDSBEGRÆNSET KAMPAGNE: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner GRATIS.