Existe uma maneira de encontrar valores que existem em todas as planilhas em uma pasta de trabalho do Excel?

0

Eu tenho uma pasta de trabalho do Excel que tem 60 guias. Eu preciso remover qualquer valor que existe em todas as guias. Existe alguma função ou alguma forma de fazer isso?

    
por Kacie Cunningham 14.11.2016 / 16:01

1 resposta

0

Existem algumas opções; Uma opção seria usar uma fórmula para ver se o valor existe em todas as planilhas e, em seguida, usar manualmente um localizar / substituir para removê-lo, se isso acontecer. Eu não sou fã dessa opção.

Minha recomendação seria usar uma macro com um loop For Each para percorrer todas as planilhas no arquivo e verificar se o valor foi encontrado; se for encontrado em todas as folhas, limpe essas células. Nós faremos algo assim:

Sub ClearAll()
    Const csValue As String = "Test"    'This is the value we're looking for


    Dim rngFound() As Range 'This is a list of all the cells containing the value
    Dim i As Integer    'This is a counter for the list
    Dim shtSheet As Worksheet   'This is an individual sheet
    Dim bolAll As Boolean   'This is a flag to indicate whether the value is in all sheets


    ReDim rngFound(1 To ActiveWorkbook.Sheets.Count)    'Size the list to the number of sheets
    bolAll = True   'Assume we will find the value in all sheets
    For Each shtSheet In ActiveWorkbook.Sheets  'Loop through each sheet
        Set rngFound(shtSheet.Index) = shtSheet.Cells.Find(what:=csValue) 'Look for the value in this worksheet
        If rngFound(shtSheet.Index) Is Nothing Then 'Check whether a match was found
            bolAll = False  'If a match wasn't found, change the flag and exit the loop
            Exit For
        End If
    Next shtSheet

    If bolAll Then  'If the value was on all sheets
        For i = 1 To UBound(rngFound)   'Loop through each flagged cell...
            rngFound(i).ClearContents   '...and delete its contents
        Next i
    End If
End Sub

Para usar este código, abra o Editor do Visual Basic pressionando Alt + F11 no teclado ou indo até a guia Desenvolvedor da faixa de opções e escolhendo "Visual Basic". No painel esquerdo do editor do Visual Basic, clique com o botão direito do mouse na entrada da sua planilha e escolha "Inserir" - > "Módulo:

Copieocódigoacimaecole-onanovajaneladomódulo.Agoravocêpodeacessá-loeexecutá-lonainterfacedemacros.Vocêvaiquerersubstituiro"Teste" na segunda linha deste código com o valor que você está procurando. Temos outras maneiras de alterar esse valor também, se você precisar fazer isso com vários valores - deixe-me saber o que você precisa.

    
por 14.11.2016 / 19:06