Avatar billede steensommer Praktikant
09. november 2004 - 15:58 Der er 5 kommentarer og
1 løsning

Fra Excel finde og slette information i Word

Hej

Jeg har følgende problem. Fra en excel projektmappe skal jeg finde en textstreng: HCV (defineret som værdien af aktuelle celle). Denne skal slettes (alså skal værdien være 0)
Efterfølgende skal dokumentet gemmes i biblioteket der ender på: Passive.
Følgende har jeg fundet ud af. Den åbner dokumentet men kommer ikke videre end det. Koden der skal slette HCV fungerer fint når den eksekveres i Word.
NB! HCV befinder sig i worddokumentets header.

Sub PassivPt()

If Sheets("Config").Range("C1") <> "" Then
Sheets("Ark1").Select
   
Dim sPath As String, CPR As String, HCV As String

HCV = ActiveCell.Value
CPR = ActiveCell.Offset(0, -2).Value

Application.ScreenUpdating = False

'Undersøger om dokumentet allerede eksisterer
    sPath = "\\server\faelles\Index Data\Journaler\"
    pPath = "\\server\faelles\Index Data\Journaler\Passive\"
   
    If Dir(sPath & CPR & ".jou") <> "" Then
'Undersøger om Word er startet
    On Error Resume Next
    Set Wdapp = GetObject(, "Word.application")
    If Error <> 0 Then
'Ellers starter vi word
    Set Wdapp = CreateObject("Word.Application")
    End If
    Wdapp.Documents.Open sPath & CPR & ".jou"
'Så gør vi Word synlig så der kan skrives i kontinuationen
    Wdapp.Visible = True
   
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = HCV
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
   
    Else:
    Application.ScreenUpdating = True
    MsgBox ("Der er ingen patient med det indtastede cpr!")
    End If

End If
   
End Sub


vh Steen
Avatar billede jkrons Professor
09. november 2004 - 18:57 #1
Har du prøvet at "smide" wdapp ind foran dine udtryk i Word-delen. Den skal jo vide, at den skal udføre koden i word objektet.

Altså fx

wdApp.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader


osv.
Avatar billede supertekst Ekspert
10. november 2004 - 09:05 #2
Hej

Som jkrons kommenterer skal der anføres wdApp. foran alle udtryk vedr. "Søg & Erstat" - men der skal også tilføjes en reference i Excel-makroen - til Word - hvilket jeg har erfaret - så virker det.

MVH
Avatar billede steensommer Praktikant
10. november 2004 - 09:33 #3
Jeg vender lige tilbage når jeg har prøvet det (og arbejdet tillader det) :0)
Avatar billede steensommer Praktikant
10. november 2004 - 10:02 #4
Nu fungerer det perfekt. Du havde ret supertekst der skulle Wdapp foran det hele og en reference til word.
Hvad siger i til en 50/50% fordeling af point - så svar lige og tak for hjælpen.
vh Steen
Avatar billede supertekst Ekspert
10. november 2004 - 10:08 #5
Hej Steen

OK & selv tak - det er en fornøjelse når det kommer til at virke.

MVH
Peter Braagaard (Supertekst)
Avatar billede steensommer Praktikant
10. november 2004 - 21:19 #6
Nå jkrons svarer ikke så du får alle points Peter - tak for hjælpen.
vh Steen
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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