Tipo de dados de string VBA (variável Dim)

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.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave