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.