Excel - mantendo apenas texto específico em uma célula
Questão
Eu tenho um arquivo de excel que tem dados despejados de fonte externa (P6). Uma célula contém muitos dados dos quais eu só preciso de muito específico.
Aqui está o que 5 células se parece:
SEA-MVRV, SEA-RAD SEA-MVAOV, SEA-OPSSRO SEA-MVAOV1 SEA-CRNPOLAR, SEA-NPCOE, SEA-MMJBC, SEA-RAD, SEA-MVMM SEA-CRNPOLAR, SEA-MMJBC, SEA-RAD, SEA- NPCOE, SEA-MVMM
Eu gostaria de excluir o SEA e, em seguida, manter apenas as abreviações que começam com MV.
Solução
Suposições
- 1. Os dados estão na coluna A
- 2. O resultado deve ser mostrado na coluna B
Sub extratoMV () Dim lMaxRow Como Longo Dim rowIdx Como Long Dim inString Como String Dim outString Como String Dim sTemp As String Dim iLoc Como Integer lMaxRows = Células (Rows.Count, "A"). End (xlUp) .Row Para rowIdx = 2 Para lMaxRows inString = Trim (Células (rowIdx, "A")) outString = "" iLoc = 0 sTemp = "" iLoc = InStr (1, inString, ", ") Do While (iLoc> 0) sTemp = Trim ( Esquerda (inString, iLoc - 1)) Se (Esquerda (sTemp, 6) = "SEA-MV") Então outString = outString & ", " & Meados (sTemp, 5) End If inString = Trim (Meados (inString, iLoc + 1)) iLoc = InStr (1, inString, ", ") Loop Se (Esquerda (inString, 6) = "SEA-MV") Então outString = outString & ", " & Mid (inString, 5) End If Se (Left (outString, 1) = ", ") Then outString = Trim (Mid (outString, 2)) End If Células (rowIdx, "B") = outString Próximo End Sub
Nota
Graças a rizvisa1 por esta dica no fórum.