Trabalhando em VBA, eu não posso atribuir uma seqüência de caracteres para um initlialized variável de seqüência de caracteres (compilação de erro:o esperado final da instrução)
-
21-12-2019 - |
Pergunta
Eu estou trabalhando em um módulo de acesso a tentar inicializar variáveis.Por algum motivo, a declaração:
Dim ModName As String = "modWindowsFileSystem"
cria uma compilação de erro no'=', com a mensagem de erro "o Esperado:fim da instrução".Eu olhei para o formato em vários sites que todos concordam com a minha sintaxe aqui é um confiável:http://msdn.microsoft.com/en-us/library/7ee5a7s1.aspx Outro site sugeriu que eu declare a variável dentro de uma função, tal como
Sub AssignValueString()
Dim Modname As String
Modname = "modWindowsFileSystem"
End Sub
mas que parece desnecessário.Um problema que deve ser considerado é que eu tenha guardado o módulo e o nome a ela de modWindowsFileSystem.Eu não tenho certeza se isso vai conflito, de alguma forma, com a inicialização da variável.
Solução
VBA é um pouco diferente do VB.O msdn link que você postou é, na verdade, para VB, o que permite inline declaração e atribuição.VBA não permitir que isso, infelizmente.
Assim, você pode dividi-los, como o exemplo:
Dim Modname As String
Modname = "modWindowsFileSystem"
Ou, você pode colocar o caractere de continuação de :
para fazer isso em uma linha.
Dim Modname As String : Modname = "modWindowsFileSystem"
Quanto a atribuição de um módulo de variáveis, você pode declarar variáveis globais fora de uma função, mas você precisará definir o seu valor dentro de uma função, como um init()
função.Constantes (rotulado com Const
) pode ser declarado e atribuído de fora de uma função.