Jump to content


ECJ

Member Since 09/12/2016
Offline Last Active 02/08/2020, 22:47
-----

Topics I've Started

Erro "Public member 'SaveAs2' on type 'DocumentClass

10/12/2016, 03:01

Olá!!

 

Sou novo no fórum e estou aprendendo o VB.Net. Estou utilizando o Visual Studio 2015.

 

Criei o scritpt que irá produzir 3 relatórios de processos diferentes. Já consegui fazer com que faça as alterações nas variáveis do template e salvar o 1º relatório.

 

O problema está no 2º relatrório, que faz as alterações no template e quando vou salva-lo me apresenta o erro em epígrafe.

 

Estou utilizando no script o modulo abaixo:

 

Imports System.IO
Imports System.IO.IOException
Imports Microsoft.Win32
Imports Microsoft.Office
Imports System.Windows.Application
'Imports System.Data.OleDb   'Para tabelas
Imports Microsoft.VisualBasic
Imports Microsoft.Office.Interop
 
Module Module1
 
    Friend objWord As Microsoft.Office.Interop.Word.Application
    Friend objDoc As Microsoft.Office.Interop.Word.Document
 
.

.

.

 

Para abrir o tamplate estou utilizando:

 

        'Istancia a Aplicação Word
 
        objWord = New Microsoft.Office.Interop.Word.Application
        objDoc = objWord.Documents.Open(Layout_fch(layout_x))
...
...
..
 
Para gravar com novo nome:
        objWord.ActiveDocument.SaveAs2(Salva_doc(layout_x),Word.WdSaveFormat.wdFormatDocument)
 
        objDoc.Close()
        objWord.Quit()
 
        objWord = Nothing
        objDoc = Nothing
...
...
 
Abre o 1º template como ==> "Layout_fch(layout_x)", onde layout_x 2 e Layout_fch = Documento_A.
 
Funciona para o 1º arquivo com a saida => "Layout_fch(layout_x)", onde layout_x = 1Layout_fch = Documento_A_2016_12_dd.
 
Abre o 2º  template como ==> "Layout_fch(layout_x)", onde layout_x 2 e Layout_fch = Documento_B.
 
Não consigo gravar o 2º arquivo com para a saida => "Layout_fch(layout_x)", onde layout_x = 2 Layout_fch = Documento_B_2016_12_dd.
 
Este programa funciona no vba do word e estou reescrevendo em vb.net.
 
Nota: Não sou programador profissional, sou um aprendiz e pela internet.
 
Agradeço desde já qualquer ajuda.
 
Abços,
 
 
 

Problema solucionado com a criação de ARRAY para o objeto word e objeto doc:

 

 'Variáveis dos objetos do Word ====================================
 
    Friend objWord(10) As Microsoft.Office.Interop.Word.Application
    Friend objDoc(10) As Microsoft.Office.Interop.Word.Document
    Friend obj_x As Integer

 

Os documentos estão sendo gerados com:
 
 obj_x = obj_x + 1
 
'===> Abre o Layout
 
        objWord(obj_x) = New Microsoft.Office.Interop.Word.Application
        objDoc(obj_x) = objWord(obj_x).Documents.Open(Layout_fch(layout_x))
...
...
...
'===> Grava o novo doumento
 
   objWord(obj_x).ActiveDocument.SaveAs(Salva_doc(layout_x))
 
        objDoc(obj_x).Close()
        objWord(obj_x).Quit()
 
        objWord(obj_x) = Nothing
        objDoc(obj_x) = Nothing

 

Obrigado,

 

ECJ


IPB Skin By Virteq