Página 1 de 1
Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 09:32
por atcgfc
Boa tarde,
Sou iniciante em VBA e tou a tentar desenvolver uma macro que possa eliminar vários erros de uma coluna. No entanto, ainda não dei com a função que possa eliminar vários erros e não apenas um dos erros.
Conseguem ajudar-me ?
Eliminar Erros N.º 19,98,311,715,716 e 799
Dim W As Worksheet
Dim linha As Long
Dim ultima_linha As Long
Set W = Sheets("Folha1")
ultima_linha = W.UsedRange.Rows.Count
With W
For linha = ultima_linha To 2 Step -1
If Cells(linha, "C") = "19" Then
.Rows(linha).Delete
End If
Next linha
End With
Cumprimentos,
Álvaro
Re: Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 10:47
por osvaldomp
Olá,
@atcgfc .
Acrescente os comandos abaixo ao seu código, nas devidas posições.
Código: Selecionar todos Dim arr As Variant
arr = Array(19, 98, 311, 715, 716, 799)
...
...
If Not IsError(Application.Match(Cells(linha, "C"), arr, 0)) Then .Rows(linha).Delete
Re: Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 11:36
por atcgfc
Obrigado @osvaldomp pela rápida resposta
Tinha escrito que não tava a dar, mas está. como tenho cerca de 25 mil linhas, está a demorar imenso.
Tenho que ver como faço isto mais rápido.
Cumprimentos,
Álvaro Gonçalves
Re: Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 11:55
por osvaldomp
Olá, @atcgfc .
Qual é a mensagem de erro ?
Você poderia disponibilizar uma amostra do seu arquivo Excel com alguns dados e com o código que você está tentando utilizar ?
Re: Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 12:12
por atcgfc
Não consigo executar, demora imenso tempo. tem como acelerar o processo ?
Re: Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 15:20
por osvaldomp
Experimente este.
Código: Selecionar todosSub DeletaLinhas() 'Eliminar Erros N.º 19,98,311,715,716 e 799
Dim LR As Long, X
With ActiveSheet
.AutoFilterMode = False
LR = .Cells(.Rows.Count, 3).End(xlUp).Row
X = Array("19", "98", "311", "715", "716", "799")
.Range("A1:H1").AutoFilter Field:=3, Criteria1:=X, Operator:=xlFilterValues
.Range("A2:H" & LR).SpecialCells(12).EntireRow.Delete
.AutoFilterMode = False
End With
End Sub
Re: Iniciante | Apagar várias linhas com base em códigos de coluna
Enviado: 17 Mai 2022 às 17:46
por atcgfc
Muito obrigado. Ficou perfeito