Tipo de variável de string
O tipo de dados String é um dos tipos de dados mais comuns no VBA. Ele armazena “strings” de texto.
Para declarar uma variável String variável, você usa a instrução Dim (abreviação de Dimension):
1 | Dim strName as String |
Para atribuir um valor a uma variável, você usa o sinal de igual:
1 | strName = "Fred Smith" |
Colocar isso em um procedimento é parecido com este:
12345678 | Sub strExample ()'declara a stringDim strNome como string'preencher a stringstrName = "Fred Smith"'mostra a caixa de mensagemMsgBox strnameEnd Sub |
Se você executar o código acima, a seguinte caixa de mensagem será exibida.
Variável de string fixa
Na verdade, existem 2 tipos de variáveis de string - fixas e variáveis.
A variável de string “variável” (mostrada no exemplo anterior) permite que sua string tenha qualquer comprimento. Isso é muito comum.
A variável de string “fixa” define o tamanho da string. Uma string fixa pode conter até 65.400 caracteres.
1 | Dim strNome como string * 20 |
Quando você define uma variável fixa, o número de caracteres na variável é bloqueado, mesmo se você usar menos caracteres.
Observe os espaços no gráfico abaixo - a variável tem espaços reservados para o resto dos caracteres na string, já que ‘Fred Smith’ tem menos de 20 caracteres.
No entanto, se você declarou uma string sem especificar o comprimento, a string conterá apenas tantos caracteres quantos forem passados a ela.
Declarar variável de string no módulo ou nível global
No exemplo anterior, você declarou a variável String dentro de um procedimento. Variáveis declaradas com um procedimento só podem ser usadas dentro desse procedimento.
Em vez disso, você pode declarar variáveis String no módulo ou nível global.
Nível de Módulo
Nível de módulo variáveis são declaradas no topo dos módulos de código com o Dim demonstração.
Essas variáveis podem ser usadas com qualquer procedimento nesse módulo de código.
Nível global
Nível global variáveis também são declaradas no topo dos módulos de código. No entanto, em vez de usar o Dim declaração, você usa o Público declaração para indicar que a variável string está disponível para ser usada em todo o seu projeto VBA.
1 | StrNome público como string |
Se você declarasse a variável string em um nível de módulo e a usasse em um módulo diferente, ocorreria um erro.
No entanto, se você usar a palavra-chave Public para declarar a variável string, o erro não ocorrerá e o procedimento será executado perfeitamente.
Converter valores armazenados como string
Pode haver um momento em que você tenha valores no Excel armazenados como texto - por exemplo, você pode ter importado um arquivo CSV que pode ter trazido texto em vez de números.
Observe que o valor em A1 é alinhado à esquerda, indicando um valor de texto.
Você pode usar um Função VBA pode ser usado para converter esses números em texto
12345678 | Sub ConvertValue ()'preencher a stringstrQty = intervalo ("A1")'preencher o duplo com a stringdblQty = strQty'preencher o intervalo com o númeroIntervalo ("A1") = dblQtyEnd Sub |
Depois de executar o código, o número se moverá para a direita, indicando que agora está armazenado como um número.
Isso é particularmente útil quando você percorre um grande intervalo de células.
123456789101112131415 | Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer'conte as linhas para converterrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Count'percorre as células e converte cada uma em um númeroPara i = 0 até rw - 1'preencher a stringstrQty = Range ("A1"). Offset (i, 0)'preencher o duplo com a stringdblQty = strQty'preencher o intervalo com o númeroIntervalo ("A1"). Offset (i, 0) = dblQtyProximo euEnd Sub |
O resultado será que todas as células serão convertidas em números
Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!
Converter string armazenada como valores
Da mesma forma, pode haver valores que você precise converter de uma string em um valor - por exemplo, se você exigir um zero à esquerda em um número de telefone.
123456789101112131415 | Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw As Integer, i As Integer'conte as linhas para converterrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Count'percorre as células e converte cada uma em um númeroPara i = 0 até rw - 1'preencher a stringdblPhone = Range ("A1"). Offset (i, 0)'preencher o duplo com a stringstrPhone = "'0" & dblPhone'preencher o intervalo com o númeroIntervalo ("A1"). Offset (i, 0) = strphoneProximo euEnd Sub |
Observe que você precisa iniciar a sequência de texto com um apóstrofo (‘), antes do zero, a fim de informar ao Excel para inserir o valor como sequência.