Como usar a instrução Erase no VBA?

A instrução `Erase` no VBA é utilizada para limpar o conteúdo de arrays. Dependendo do tipo de array, o comportamento da instrução `Erase` pode variar:

  • Array Estático: Para arrays estáticos (aqueles cujo tamanho é fixado quando o array é declarado e não utiliza a palavra-chave `ReDim`), `Erase` inicializa cada elemento do array a seu valor padrão. Para tipos numéricos, isso significa definir os valores como zero, enquanto para arrays de tipo `String`, cada elemento será definido como uma string vazia.
  • Array Dinâmico: Para arrays dinâmicos (aqueles declarados com `ReDim`), `Erase` liberta a memória utilizada pelo array, tornando-o não inicializado. Após um `Erase` em um array dinâmico, para reutilizar o array, você precisará redimensioná-lo novamente usando `ReDim`.

Aqui está um exemplo de como usar a instrução `Erase` em VBA:

Sub LimparArrays()
    ' Declarando um array estático
    Dim arrayEstatico(1 To 5) As Integer
    
    ' Preenchendo o array estático com valores
    Dim i As Integer
    For i = 1 To 5
        arrayEstatico(i) = i * 10
    Next i
    
    ' Usando Erase para inicializar o array estático a seus valores padrão
    Erase arrayEstatico

    ' Declarando e redimensionando um array dinâmico
    Dim arrayDinamico() As String
    ReDim arrayDinamico(1 To 3)
    
    ' Preenchendo o array dinâmico com valores
    For i = 1 To 3
        arrayDinamico(i) = "Texto " & i
    Next i
    
    ' Usando Erase para liberar a memória ocupada pelo array dinâmico
    Erase arrayDinamico

    ' Após Erase, deve-se redimensionar o array dinâmico antes de usá-lo novamente
    ReDim arrayDinamico(1 To 3)
End Sub

Lembre-se de que após usar `Erase` em um array dinâmico, é necessário redefini-lo com `ReDim` antes de poder utilizá-lo novamente. Para arrays estáticos, os valores são simplesmente redefinidos para seus valores padrão.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project