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 
vba-clear-array

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

  1. Ao limpar uma tabela fixa:
    1. 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.
    2. Em uma matriz contendo valores numéricos, a instrução erase redefinirá todos os elementos para zero.
    3. Em uma matriz que, como um tipo de dados variável, as instruções claras redefinirão todos os elementos para vazios.
    4. Em uma matriz contendo objetos, a instrução erase redefinirá todos os elementos para nada.
    5. Em uma matriz contendo objetos, a instrução erase redefinirá todos os elementos se for uma variável separada.
  2. Quando você apaga uma matriz dinâmica, a instrução erase libera o espaço usado pela matriz dinâmica.

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *