Avatar billede Fredeo Nybegynder
17. december 2009 - 22:31 Der er 6 kommentarer og
1 løsning

Kan en makro i Word åbne Excel?

Til eksperten

Jeg har følgende problem: Jeg modtager data som Word-dokument, der er opstillet som vist nedenfor. Jeg har imidlertid brug for, at få dem omsat til tabeldata.
Hovedparten kan opløses vha. en række søg og erstat kommandoer. Har lavet en makro, der kører fint.

tal1
ord1, ord2, ord3
Plan: ord4; Snit: ord5; Beskrivelse: ord6; Dybde: tal2 cm

tal1
ord1, ord2, ord3
Plan: ord4; Snit: ord5; Beskrivelse: ord6; Dybde: tal2 cm

etc.

Problemet er at få separeret ord1, ord2, ord3, der er separeret med komma, men da feltet efter Beskrivelse: (ord6) er et friteksfelt, kan komma også optræde her. 
Løsningen er pt. at lade søg og erstat gøre det meste i Word, herefter gemme filen som tekst, for så at importerer den i Excel og splitte cellen med ord1, ord2, ord3 i tre nye.
Spørgsmålet er nu, kan man lave en makro i Word, lad den gøre hvad den skal i Word, for så at åbne Excel og opsplitte cellerne?
Avatar billede Lene Fredborg Ekspert
17. december 2009 - 23:45 #1
Jeg ved ikke, om jeg har misforstået det, du skriver, men der skulle ikke være nogen grund til at involvere Excel, selv om det er teknisk muligt. Word kan konvertere tekst til tabel, hvor du definerer, hvilket tegn, der skal bruges som adskiller, for eksempel:

    Dim strSep As String
    Dim otable As Table
   
    'Definer hvilket tegn, der skal bruges som separator - ændr efter behov
    strSep = ","
   
    'Konverter markeret tekst til tabel med strSep som adskiller
    Set otable = Selection.ConvertToTable(Separator:=strSep, AutoFitBehavior:=wdAutoFitFixed)
    'Nu kan du gøre noget med oTable efter behov, f.eks.
    With otable
        .ApplyStyleHeadingRows = True
        .Rows(1).Shading.BackgroundPatternColor = wdColorGray10
    End With
   
    'Ryd op
    Set otable = Nothing
Avatar billede Fredeo Nybegynder
18. december 2009 - 09:02 #2
Når jeg har opløst (søg og erstat) det output, som db giver mig i Word (se første indlæg)får jeg følgende tekststreg for hver post:

tal1^tOrd1, Ord2, Ord3^tOrd4^tOrd5^tOrd6^ttal2^p
tal1^tOrd1, Ord2, Ord3^tOrd4^tOrd5^tOrd6^ttal2^p
etc.

(OBS: Ord6 er et fritekstfelt der kan indeholde 256 tegn, herunder komma, mens Ord1-Ord3 er enkelte ord adskildt af komma).

DVS. målet er at få følgende teksstreng for hver post:

tal1^tOrd1^tOrd2^tOrd3^tOrd4^tOrd5^tOrd6^ttal2^p
tal1^tOrd1^tOrd2^tOrd3^tOrd4^tOrd5^tOrd6^ttal2^p

Hvis jeg kan blive i Word, er det super. Jeg har bare ikke kunnet få isoleret Ord1-Ord3 i Word uden at det går galt i fritekstfeltet Ord6, hvilket jeg kan i Excel.
Håber det er mere klar tale.
Avatar billede Lene Fredborg Ekspert
18. december 2009 - 10:02 #3
Indeholder teksten kun "ren" tekst uden speciel formatering? I givet fald burde du kunne bruge denne fremgangsmåde:

    Dim n As Long
    Dim oRange As Range
   
    'Definer i hvilke afsnit udskiftning skal foretages
    'her er som eksempel brugt afsnittene i markeringen
    Set oRange = Selection.Range
   
    For n = 1 To oRange.Paragraphs.Count
        With oRange.Paragraphs(n)
            'Fjern de første 2 forekomster af ", "
            .Range.Text = Replace(Expression:=.Range.Text, Find:=", ", Replace:="", Start:=1, Count:=2)
        End With
    Next n
 
    'Ryd op
    Set oRange = Nothing
Avatar billede Fredeo Nybegynder
18. december 2009 - 10:26 #4
Tak Lene-fredborg

Nu er jeg godt nok tæt på. Kun to små problemer:
1. Koden for tabulator. Den skal sættet ind Replace:="" (kender kun ^t/^9, men den duer ikke her).
2. Den tager kun første post, men forsætter ikke med de næste.

Det er forøvrigt en god hjemmeside du har - mange nyttige ting.
Avatar billede Lene Fredborg Ekspert
18. december 2009 - 10:40 #5
Står koden nu "fysisk" som ^t i teksten?

i VBA kan du brug vbTab til at indsætte en rigtig tabulator:
...Replace:=vbTab...
Avatar billede Fredeo Nybegynder
18. december 2009 - 10:52 #6
Mange tak alt virker godt - Du har været en stor hjælp.
Avatar billede Lene Fredborg Ekspert
18. december 2009 - 10:57 #7
Velbekomme. Det var godt, at du fik det til at virke.
Dette er lavet som et svar.
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