Como limpar uma tabela no vba?
Você precisa usar a instrução “Erase” para apagar um array no VBA. Adicione a palavra-chave “Apagar” antes do nome da tabela que deseja apagar, mas observe que todos os valores da tabela serão redefinidos. Na tabela a seguir você tem 3 elementos e usamos a instrução erase para apagar tudo.
Sub myMacro1() Dim myArray() As Long ReDim myArray(4) myArray(1) = 1 myArray(2) = 2 myArray(3) = 3 myArray(4) = 4 ReDim myArray(1 To 5) MsgBox myArray(3) End Sub
E com esta instrução, todos os elementos do array foram limpos, e quando usamos Debug.Print (Janela Imediata) para obter o elemento do array, não sobrou nada.
Limpar tabela dinâmica
Quando você usa o ReDim, ele exclui todos os itens. Mas você pode usar a instrução preserve para preservar alguns dos elementos e limpar parcialmente um array. No exemplo a seguir, temos um array e limpamos parcialmente o quarto valor e, em seguida, definimos os elementos de volta para 5.
E se você quiser limpar parcialmente um array dinâmico.
Sub myMacro2() Dim myArray() As Long ReDim myArray(1 To 4) myArray(1) = 1 myArray(2) = 2 myArray(3) = 3 myArray(4) = 4 'erase position 4 but preserve the 1,2, and 3 ReDim Preserve myArray(1 To 3) 'redefine the array items to five ReDim Preserve myArray(1 To 5) MsgBox myArray(3) End Sub
Pontos importantes
- Ao limpar uma tabela fixa:
- Em uma matriz contendo todos os valores de uma string, a instrução erase redefinirá todos os elementos em (comprimento variável) para a string de comprimento zero ” ” e (comprimento fixo) para zero.
- Em uma matriz contendo valores numéricos, a instrução erase redefinirá todos os elementos para zero.
- Em uma matriz que, como um tipo de dados variável, as instruções claras redefinirão todos os elementos para vazios.
- Em uma matriz contendo objetos, a instrução erase redefinirá todos os elementos para nada.
- Em uma matriz contendo objetos, a instrução erase redefinirá todos os elementos se for uma variável separada.
- Quando você apaga uma matriz dinâmica, a instrução erase libera o espaço usado pela matriz dinâmica.