Usuário com melhor resposta
Erro em tempo de execução '13': Tipos incompatíveis no Word 2007

Pergunta
-
Estou tentando incluir um contador automático de número de documento no corpo do texto no word para ajudar com o meu trabalho, mas já olhei em outros sites e não consegui resolver.
O mais perto que cheguei foi isso. Criei um modelo, criei um arquivo.txt para anotar a numeração de documentos e até o indicador(bookmarks), mas na hora de abrir o documento aparece esse erro. Quando tento depurar esta ficando amarelo a linha:
NumDoc = NumDoc + 1
Pq será? Alguém poderia me ajudar? não manjo muito de programação e nem de VBA. Desde já agradeço.
Segue o código:
Sub AutoNew() ' ' ' ' Abre o arquivo de numeração e pega o número do último Ofício NumDoc = System.PrivateProfileString("C:\Numeração.Txt", "Valores", "Portaria") ' Testa se já tem Portarias. If NumDoc = "0" Then NumDoc = 1 Else NumDoc = NumDoc + 1 End If ' Atualiza o número de Portarias System.PrivateProfileString("C:\Numeração.txt", "Valores", "Portaria") = NumDoc ' Atualiza o valor do indicador ActiveDocument.Bookmarks("NumDoc").Range.InsertBefore Format(NumDoc, "#") ' Salva o arquivo ActiveDocument.SaveAs FileName:="Portaria Nº " & Format(NumDoc, "#") End Sub
- Editado MTSC sábado, 23 de janeiro de 2016 04:03
Respostas
-
Este erro ocorre porque
System.PrivateProfileString
retorna uma string.
Você está misturando string com números inteiros.
Para fazer um teste, insira no seu código, após a linha
NumDoc = System.PrivateProfileString("C:\Numeração.Txt", "Valores", "Portaria")
A seguinte seguinte linha
MsgBox(NumDoc)
Você verá que aparecerá uma caixa de mensagem mostrando um texto.
Responda dizendo qual é o texto que aparece na mensagem.
- Editado AndersonFDiniz2 sábado, 23 de janeiro de 2016 19:08
- Sugerido como Resposta AndersonFDiniz2 segunda-feira, 25 de janeiro de 2016 16:04
- Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:33
- Não Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:34
- Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:56
Todas as Respostas
-
Este erro ocorre porque
System.PrivateProfileString
retorna uma string.
Você está misturando string com números inteiros.
Para fazer um teste, insira no seu código, após a linha
NumDoc = System.PrivateProfileString("C:\Numeração.Txt", "Valores", "Portaria")
A seguinte seguinte linha
MsgBox(NumDoc)
Você verá que aparecerá uma caixa de mensagem mostrando um texto.
Responda dizendo qual é o texto que aparece na mensagem.
- Editado AndersonFDiniz2 sábado, 23 de janeiro de 2016 19:08
- Sugerido como Resposta AndersonFDiniz2 segunda-feira, 25 de janeiro de 2016 16:04
- Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:33
- Não Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:34
- Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:56
-
Obrigado AndersonFDiniz2, um colega meu me explicou que costuma dar erro com o zero, então me aconselhou a retirá-lo, então consegui resolver, e como não iria alterar o código apenas declarei NumDoc = 1.
Agora estou com uma outra dúvida, se puder me ajudar, segue o link:
https://social.msdn.microsoft.com/Forums/pt-BR/1160d885-287b-4faf-81e6-04afd8f1d2f4/como-adicionar-uma-macro-a-um-boto-no-word-2007?forum=vbapt
Obrigado.