在一个按钮里有如下代码,去修改WORD文档的纸型、边距。
在程序开始运行后,第一次执行按钮内代码时,可以成功完成。
在执行成功后,如果不关闭程序,再次执行代码时就报错。“远程服务器不存在或不能使用”
如果把'~~~~~~~~~~~~~~之间的代码去掉就可以了。
这是什么原因,如何解决啊?
先谢谢了代码如下
    Dim WordApp  As Word.Application 'WORD应用对象
    Dim WordDemo As Word.Document '文档应用对象
    Set WordApp = New Word.Application
    Dim a As Word.Documents
    Set a = WordApp.Documents
    Set WordDemo = a.Open(sFormName)
'~~~~~~~~~~~~~~~~~~~
    With WordDemo.PageSetup
        .BottomMargin = CentimetersToPoints(0)
        .LeftMargin = CentimetersToPoints(0)
        .RightMargin = CentimetersToPoints(0)
        .TopMargin = CentimetersToPoints(0)
        .Gutter = CentimetersToPoints(0)
        .PaperSize = wdPaperCustom
        .PageHeight = CentimetersToPoints(Picture1.ScaleHeight)
        .PageWidth = CentimetersToPoints(Picture1.ScaleWidth)
    End With
'~~~~~~~~~~~~~~
    WordDemo.Close Word.WdSaveOptions.wdSaveChanges
    Set WordDemo = Nothing
    WordApp.Quit Word.WdSaveOptions.wdSaveChanges
    Set WordApp = Nothing

解决方案 »

  1.   

    在执行成功后,如果不关闭程序,再次执行代码时就报错。“远程服务器不存在或不能使用”就是因为不关闭程序的原因
    至于  修改WORD文档的纸型、边距   你可以定义好WORD模版的
      

  2.   

    问题解决:Dim WordApp  As Word.Application 'WORD应用对象
        Dim WordDemo As Word.Document '文档应用对象
        Set WordApp = New Word.Application
        Dim a As Word.Documents
        Set a = WordApp.Documents
        Set WordDemo = a.Open(App.Path & "/test.doc")
    '~~~~~~~~~~~~~~~~~~~
        With WordDemo.PageSetup
            .BottomMargin = WordApp.CentimetersToPoints(0)
            .LeftMargin = WordApp.CentimetersToPoints(0)
            .RightMargin = WordApp.CentimetersToPoints(0)
            .TopMargin = WordApp.CentimetersToPoints(0)
            .Gutter = WordApp.CentimetersToPoints(0)
            .PaperSize = wdPaperCustom
            .PageHeight = WordApp.CentimetersToPoints(50)
            .PageWidth = WordApp.CentimetersToPoints(50)
        End With
    '~~~~~~~~~~~~~~
        WordDemo.Close Word.WdSaveOptions.wdSaveChanges
        Set WordDemo = Nothing
        WordApp.Quit Word.WdSaveOptions.wdSaveChanges
        Set WordApp = Nothing
      

  3.   

    With WordDemo.PageSetup
            .BottomMargin = CentimetersToPoints(0)
            .LeftMargin = CentimetersToPoints(0)
            .RightMargin = CentimetersToPoints(0)
            .TopMargin = CentimetersToPoints(0)
            .Gutter = CentimetersToPoints(0)
            .PaperSize = wdPaperCustom
            .PageHeight = CentimetersToPoints(Picture1.ScaleHeight)
            .PageWidth = CentimetersToPoints(Picture1.ScaleWidth)
        End With
    -------------------------------------------------问题出在上面这段代码里,没指定CentimetersToPoints的所属对象,所以会包你所说的错误,改为这样:With WordDemo.PageSetup
            .BottomMargin = WordApp.CentimetersToPoints(0)
            .LeftMargin = WordApp.CentimetersToPoints(0)
            .RightMargin = WordApp.CentimetersToPoints(0)
            .TopMargin = WordApp.CentimetersToPoints(0)
            .Gutter = WordApp.CentimetersToPoints(0)
            .PaperSize = wdPaperCustom
            .PageHeight = WordApp.CentimetersToPoints(50)
            .PageWidth = WordApp.CentimetersToPoints(50)
        End With
      

  4.   

    还少指了一句,都给加上:With WordDemo.PageSetup
            .BottomMargin = WordApp.CentimetersToPoints(0)
            .LeftMargin = WordApp.CentimetersToPoints(0)
            .RightMargin = WordApp.CentimetersToPoints(0)
            .TopMargin = WordApp.CentimetersToPoints(0)
            .Gutter = WordApp.CentimetersToPoints(0)
            .PaperSize = Word.wdPaperCustom  '<----------------------上面少指了这句
            .PageHeight = WordApp.CentimetersToPoints(50)
            .PageWidth = WordApp.CentimetersToPoints(50)
        End With
      

  5.   

    TO faysky2() ,谢谢你,让我明白了,转换函数还要指定对象。结贴