ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Kopier regnearkinformasjon til Word

Ved hjelp av makroen nedenfor kan man kopiere alle regnearkene i den aktive arbeidsboken til ett nytt Word dokument. Hvert regneark starter på en ny side i Word-dokumentet.

Sub CopyWorksheetsToWord()
' trenger en referanse til Word objektbiblioteket:
' i VBE velger du Verktøy, Referanser og krysser av for 
' Microsoft Word X.X objektbiblioteket
Dim wdApp As Word.Application, wdDoc As Word.Document, ws As Worksheet
    Application.ScreenUpdating = False
    Application.StatusBar = "Creating new document..."
    Set wdApp = New Word.Application
    Set wdDoc = wdApp.Documents.Add
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Visible Then ' inkluderer kun synlige regneark
            Application.StatusBar = "Copying data from " & ws.Name & "..."
            ws.UsedRange.Copy ' or edit to the range you want to copy
            wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter
            wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.Paste
            Application.CutCopyMode = False
            wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter
            ' insert page break after all worksheets except the last one
            If Not ws.Name = Worksheets(Worksheets.Count).Name Then
                With wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range
                    .InsertParagraphBefore
                    .Collapse Direction:=wdCollapseEnd
                    .InsertBreak Type:=wdPageBreak
                End With
            End If
        End If
    Next ws
    Set ws = Nothing
    Application.StatusBar = "Cleaning up..."
    ' apply normal view
    With wdApp.ActiveWindow
        If .View.SplitSpecial = wdPaneNone Then
            .ActivePane.View.Type = wdNormalView
        Else
            .View.Type = wdNormalView
        End If
    End With
    Set wdDoc = Nothing
    wdApp.Visible = True
    Set wdApp = Nothing
    Application.StatusBar = False
End Sub

 

Dokumentet er sist oppdatert 1999-12-20 12:37:25      Utskriftsvennlig versjon

Brukerkommentarer:
KG fra Bergen skrev (2006-06-15 14:30:31 CET):
Re: Velge sider og størrelse
Takk det fungerte. Årsak til feilkode var at jeg har ett ark med tegninger som ikke ble akseptert. Hvorfor kopieringen starter midt på siden i word og ikke i venstre marg skal jeg forsøke å finne ut av.
Ole P. fra Trondheim skrev (2006-06-14 12:02:02 CET):
Re: Velge sider og størrelse
Se det oppdaterte eksempelet ovenfor.
KG fra Bergen skrev (2006-06-14 07:49:28 CET):
Velge sider og størrelse
Takk - det fungerte. Beklager mas men det er ikke alt jeg får til med makroer enda.
Jeg ser at alle ark blir overført til word også de skjulte. Hva skriver man i makroen for å unngå det? Jeg har ark som har Visibility "xlSheetHidden" og "xlSheetVeryHidden". Kan dette gjøres?
Ole P. fra Trondheim skrev (2006-06-13 22:28:17 CET):
Re: Velge sider og størrelse
Rediger denne setningen for å velge hva du vil kopiere:
ws.UsedRange.Copy ' or edit to the range you want to copy
F.eks. slik:
ws.Range("A100:D150").Copy

Legg til noe slikt for å korrigere font-størrelsen:
wdDoc.Content.Font.Size = 12

KG fra Bergen skrev (2006-06-13 11:55:50 CET):
Velge sider og størrelse
Hei.
Jeg har prøvd denne makroen i forbindelse med overføring fra en Excel prisbok til word. Hvordan endres makroen slik at man kan overføre utvalgte sider? En annen sak er at tallformatet i prisboken er 20 pixler som gjør at en side i Excel blir til fem sider i word. Kan man gi kommando på bokstav/tall høyden som skal overføres?

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2017    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse