output para um arqu...
 
Notifications
Clear all

[Resolvido] output para um arquivo texto

Página 3 / 3

cimerio
Posts: 39
Registered
Topic starter
(@cimerio)
Eminent Member
Entrou: 1 ano atrás

bom dia. uma explicação básica: estou fazendo um script que faz uso de uma matriz   linha(1), linha(2), pelo fato que eu preciso jogar as linhas numa ordem fixa num arquixo xml. enfim, se a janela de verificação imediata funcionasse sem limite, eu não precisaria disso, pois, no lugar de

linha(10) = "" e

For n = 1 To 516
Worksheets("xml").Cells(n, 1).Value = linha(n)

eu colocaria

debug.print  

e copiaria as linhas direto da janela de verificação para colar no arquivo. porque é muito cansativo manipular tantas variáveis e mudar o número dentro delas. uma linha nova tem que alterar o número de todas as outras variáveis posteriores (n + 1)

porém, a janela de verificação tem um limite de 200 linhas a serem mostradas.

pois bem, tem alguma forma de eu escrever no script apenas

"

 

e o script escrever essas linhas, na ordem, num arquivo txt?

na verdade, não adiantaria só copiar e colar as linhas, teria que substituir o comando debug.print, ou então eu perderia os loops que possuo. Ex:

For y = 13 To 17
If Worksheets("espelho").Cells(y, 5).Value <> 0 Then
Debug.Print "linha(" & x & ") = <pcoItem>"
x = x + 1
Debug.Print "linha(" & x & ") = "; "<numSeqItem>" & i & "</numSeqItem>"
x = x + 1

 

Responder
14 Respostas
cimerio
Posts: 39
Registered
Topic starter
(@cimerio)
Eminent Member
Entrou: 1 ano atrás

edsonbr, eu realmente tinha esquecido de colocar o Close.

agora coloquei, veremos se resolve. aparentemente sim.

na tentativa pra resolver o problema, eu tinha tirado as variaveis, incluindo o freefile.

e usando o Open file For Output As #1, somente

depois vou tentar esse metodo de jogar tudo numa string, primeiro.

 

no momento, um erro premente é que, mesmo com a instrução Close, se eu apertar F5 de novo, aparece o erro abaixo e tenho que apertar Stop (Redefinir). Isso independente do arquivo ser aberto ou não.

Erro em tempo de execução 55.   O arquivo já foi aberto.           

eu tambem tive usar a extensão .txt. não funciona salvar direto num arquvo Xml porque nosso sistema acusa 

XML da área de dados com codificação diferente de UTF-8

 

Responder
EdsonBR
Posts: 899
Moderator
(@edsonbr)
Prominent Member
Entrou: 6 anos atrás
Postado por: @cimerio

...mesmo com a instrução Close, se eu apertar F5 de novo, aparece o erro ... independente do arquivo ser aberto ou não.

Se é o erro 55 é porque o arquivo necessariamente está aberto. O código tem que passar, obrigatoriamente, pela linha do Close. Ou, como dito anteriormente, fechar manualmente via janela de Verificação Imediata (CTRL + G) digitando Close dando Enter (tente fazer isso quando dá o erro e continuando a execução do código).

Provavelmente isso está ocorrendo enquanto vc depura o código. Dependendo de como está seu modelo, vc poderia, enquanto não conclui seu projeto, desviar o fluxo quando ocorre erro colocando no início do código:

 On Error GoTo Fechar

E antes do final:

Fechar:
  Close
  Resume
End Sub
Postado por: @cimerio

eu tambem tive usar a extensão .txt. não funciona salvar direto num arquvo Xml porque nosso sistema acusa 

Após fechar o arquivo txt, vc pode renomeá-lo pelo próprio VBA:

Name "C:\macro\Testes.txt" As "C:\macro\Testes.xml"

 

Responder
1 Responder
cimerio
Registered
(@cimerio)
Entrou: 1 ano atrás

Eminent Member
Posts: 39
Postado por: @edsonbr
Postado por: @cimerio

...mesmo com a instrução Close, se eu apertar F5 de novo, aparece o erro ... independente do arquivo ser aberto ou não.

Se é o erro 55 é porque o arquivo necessariamente está aberto. O código tem que passar, obrigatoriamente, pela linha do Close. Ou, como dito anteriormente, fechar manualmente via janela de Verificação Imediata (CTRL + G) digitando Close dando Enter (tente fazer isso quando dá o erro e continuando a execução do código).

Provavelmente isso está ocorrendo enquanto vc depura o código. Dependendo de como está seu modelo, vc poderia, enquanto não conclui seu projeto, desviar o fluxo quando ocorre erro colocando no início do código:

 On Error GoTo Fechar

E antes do final:

Fechar:
  Close
  Resume
End Sub
Postado por: @cimerio

eu tambem tive usar a extensão .txt. não funciona salvar direto num arquvo Xml porque nosso sistema acusa 

Após fechar o arquivo txt, vc pode renomeá-lo pelo próprio VBA:

Name "C:\macro\Testes.txt" As "C:\macro\Testes.xml"

 

infelizmente, não funciona. o arquivo renomeado ainda é acusado como um arquivo que não é utf-8 pelo sistema

Responder
cimerio
Posts: 39
Registered
Topic starter
(@cimerio)
Eminent Member
Entrou: 1 ano atrás

agora funcionou, eu estava pondo o Close de forma errada, usando variável.

obrigado, por enquanto.

Responder
Página 3 / 3