20. december 2001 - 20:45Der er
17 kommentarer og 1 løsning
Kopiering af celler med nummeropstillinger i Word
Jeg har et word dokument med nummeropstillinger, dette dokument har jeg konvertering ind i en 1 kolonne tabel med afsnitstegn som skille parameter. Nu vil gerne kopierer cellerne ind i en kolonne til højre for originalen, således at jeg får en 2 kolonne tabel hvor teksten og nummereringen er ens i både venstre og højre kolonne. Dette gå også fint, men nummereringen ændre sig nu til også at omfatte højre kolonne. Altså hvis der står 1 i venstre så bliver den tilsvarende tekst i højre kolonne mærket med nummer 2 og derefter den venstre som nummer 3. Jeg ønsker at nummereringen skal være 1,2,3 osv i både venstre og højre kolonne.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Det er rigtig at du kan fjerne nummereringen før du kopierer, men hos mig afhjælper det ikke problemet, da jeg når jeg sætter nummerreringen på igen igen får den frotsatte nummerrækefølge.
Løsning: I kolonne 2 markerer du al tekst. Vælg Formater/Punktopstilling på menulinien Vælg punkter \"Start forfra\" i venstre hjørne (i Word 2000)
Det er mere kompliceret, da dokumentet der er på ca 50 sider består af flere uafhængige nummer- og punktopstillinger. Det jeg har brug for er noget i retning af Excel funktionen Paste special hvor det kun er værdierne der indsættes og ikke formlerne. Altså hvor jeg kan \"fryse\" formateringen og derved slå automatikken fra.
Der er faktisk en funktion noget lignende i Word, men den indsætter den nye tekst som et objekt - dvs at den faktisk indsætter et nyt dokument magen til det gamle (altså det du har markeret) i højre kolonne. Prøv og se om ikke dette kunne være løsningen - ellers må vi lave noget VBA kode :-)
Metode: Marker teksten i venstre kolonne Vælg Kopier Gå til højre kolonne Vælg Rediger/Indsæt speciel fra menulinien I dialoogboksen vælges Microsoft Word-dokument-objekt
Nu bliver hele din formatering og punktopstillinger magen til venstre kolonne
Ja - det virker ikke hvis du har flere celler, da wordobjektet bliver indsat i samme celle.
Nu er der kun programmering tilbage, hvor du markerer hver enkelt celle i venstre kolonne og kopierer dem over i højre kollonne og indsætter dem som objekt.
Det går ikke: Når jeg indsætter som et object så mister jeg punktnummereringen, og de de to kolonner opfylder ikke betingelsen, at de skal være identiske også hvad angår formateringen.
Hvad med om du sender dokumentet til mig (hvis ikke der er noget hemmeligt i det), så laver jeg en makro, der kan kopiere fra venstre til højre. Jeg har allerede leget lidt med een, men mangler at se strukturen i dit dokument.
Jeg er åbenbart den eneste, der tør give mig i kast med din problemstilling *S*
Nu har fundet på endnu en metode - og denne gang tror jeg den virker *S*
Hele problemet har været at der på en eller anden måde bliver oprettet en kæde mellem cellerne (også mellem celler i forskellige tabeller), hvorved nummeropstillingen bliver videreført. Jeg har nu fundet en måde at bryde denne kæde via en tekstboks:
Marker og kopier hele din tabel Indsæt en Tekstboks via Tegneværktøjslinien Indsæt din tabel i tekstboksen.
Nu bevares både nummeropstillinger og typografier *S*
NB - en tekstboks kan placeres, hvor du har lyst i dokumentet - også ved siden af en tabel...
Nej den går ikke med tekstbox. Jeg skal have en 2 kolonners tabel hvor cellerne overfor hinanden er identiske i indhold og formatering. Grunden hertil er at, jeg skal brugen tabellen som input i et specielt oversættersystem.
\'Genneløber alle cellerne i den valgte tabel For i = 1 To AntalRækker Flag = False
\'Vælger og kopierer indholdet af en celle Selection.SelectCell Selection.Copy Selection.MoveRight Unit:=wdCell
\'Opretter et nyt dokument til at tjekke om cellens indhold er en punktopstilling Documents.Add DocumentType:=wdNewBlankDocument Selection.Paste
\'Hvis cellens indhold er et dokument sættes et flag If ActiveDocument.ListTemplates.Count > 0 Then Flag = True End If
\'Punktopstillingen konverteres til tekst If Flag = True Then Selection.MoveUp Unit:=wdLine, Count:=1
For x = 1 To ActiveDocument.Lists.Count ActiveDocument.Lists(x).ConvertNumbersToText Next x
Selection.SelectCell Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Copy End If
\'Det nye dokument lukkes uden at det gemems ActiveWindow.Close (wdDoNotSaveChanges)
\'Det fra cellen kopierede sættes ind i cellen til højre Selection.SelectCell Selection.Paste
\'Formattet fra den venstre celle kopieres til den højre så de er ens If Flag = True Then Selection.SelectCell Selection.MoveLeft Unit:=wdCharacter, Count:=1 Set paraFormat = Selection.ParagraphFormat.Duplicate Selection.SelectCell Selection.Paragraphs.Format = paraFormat End If
Selection.MoveRight Unit:=wdCell
\'Næste celle vælges Next i \'Næste tabel vælges Next n
End Sub
Den er nok lidt avanceret, men virker fint hos mig *S*
Jeg glemte lige at sige at det virker i Word 2000 - ikke i Word 2002 (XP), da objektmodellen er lidt ændret. Jeg har dog også det det til at virke i Word 2002 med nogel få ændringer.
Hej Richardt Jeg har nu testet din løsning, og jeg har det problem at den sætter den nye celle ind under den kopierede celle, og ikke i en ny celle til højre for originalen, så bortset fra at den nye celle er placeret forkert så ser det ud til at virke. Flot nok Jeg har forsøgt med forskellige retteleler, men uden det store held. Nild Erik
Hej Nils Erik (regner med at du skrev forkert - håber det er ok *S*)
Jeg gik ud fra i min løsning at du havde en tabel med 2 kolonner, hvor cellerne til venstre skulle kopieres over i de højre, men det er måske ikke rigtigt? Mit tilbud med at se dit dokument står stadig ved magt *S*
'Punktostillinger konverteres til tekst For x = 1 To ActiveDocument.Lists.Count ActiveDocument.Lists(ActiveDocument.Lists.Count).ConvertNumbersToText Next x
'Genneløber alle cellerne i den valgte tabel For i = 1 To Antalrækker 'Vælger og kopierer indholdet af en celle Selection.SelectCell Selection.Copy Selection.MoveRight Unit:=wdCell Selection.Paste Selection.MoveRight Unit:=wdCell 'Næste celle vælges Next i 'Næste tabel vælges Next n
'Fjerner punktopstilllinger fra tabelen, der fremkommer, når nu kolonne indsættes For n = 1 To Antalrækker Selection.Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph Selection.MoveDown Unit:=wdLine, Count:=1 Next n
'opretter midlertideigt nyt dokument og indsætter tabellen Documents.Add DocumentType:=wdNewBlankDocument Selection.Paste NytDok = ActiveDocument.Name
'Punktostillinger konverteres til tekst For x = 1 To ActiveDocument.Lists.Count ActiveDocument.Lists(ActiveDocument.Lists.Count).ConvertNumbersToText Next x
'Kopiering af de enkelte celler startes Selection.Tables(1).Select Selection.MoveRight Unit:=wdCell Selection.SelectCell Selection.Copy
'Genneløber alle cellerne i den valgte tabel For i = 2 To Antalrækker 'Vælger og kopierer indholdet af en celle Documents(NytDok).Activate Selection.MoveRight Unit:=wdCell Selection.SelectCell Selection.Copy
' Indsætter indholdet i den "gamle" tabel Documents(GammeltDok).Activate Selection.MoveRight Unit:=wdCell Selection.MoveRight Unit:=wdCell Selection.SelectCell Selection.Paste 'Næste celle vælges Next i
' Midlertidigt dokument lukkes uden at gemme Documents(NytDok).Activate ActiveDocument.Close (wddonotsacechanges)
End Sub
Synes godt om
Ny brugerNybegynder
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.