Excel - Transfere dados seletivamente para intervalos pré-definidos

Questão

Eu sou novo no Excel VB. Eu gostaria de comparar um conjunto de dados da planilha1 encontrando um conjunto de múltiplas condições / critérios e, em seguida, transferir esses dados para um intervalo pré-definido no Worksheet2 o tempo todo, omitindo colunas de dados que eu não preciso.

Por exemplo:

Planilha1 contém os seguintes dados onde eu preciso de dados que atendam ao valor "si" na coluna A e também valor "d" e "m" na coluna B e, em seguida, transferir as linhas correspondentes na coluna A, C e E somente para worksheet2.

 ABCDE si dos xxxxxx si do 2 ddddd pg drx dddd pg mra sdfsdf fj mw 3 ghghgh fj dwf dssdg si mx 1 sfsdfsd si yx 1 hmhjkk 

Worksheet2 tem as colunas / intervalo pré-definidos (A, C e E) para copiar os dados. Se isso funcionar, eu deveria ter o seguinte resultado, como mostrado abaixo.

 ACE si o xxxxxx si o ddddd si x sfsdfsd 

Observe que as colunas ou intervalos predefinidos na planilha2 devem expandir e contrair automaticamente automaticamente de acordo com a quantidade de dados transferidos para ela.

Qualquer método é bom contanto que a saída colocada na Planilha 2 seja arquivada.

Solução

Os dados na folha 1 devem ter cabeçalhos de coluna na linha 1. a folha de amostra será assim:

 hdng1 hdng2 hdng3 hdng4 hdng5 si dos xxxxxx si do 2 ddddd pg drx dddd pg mra sdfsdf fj mw 3 ghghgh fj dwf dssdg si mx 1 sfsdfsd si yx 1 hmhjkk 

executar esta macro sobre isso e ver a folha 2

(mantenha sempre o arquivo original com segurança em algum lugar

a macro é

 Planilhas Subteste () Planilhas ("planilha2") Planilhas Cells.Clear ("planilha1"). Ativar ActiveSheet.UsedRange.Select Campo Selection.AutoFilter: = 1, Criteria1: = "si" Campo Selection.AutoFilter: = 2, Criteria1 : = "= d", operador: = xlOr, _Critérios2: = "= m" ActiveSheet.Cells.SpecialCells (xlCellTypeVisible) .Copy com planilhas ("Plan2") .Range ("A1"). PasteSpecial .Range (" B: B, D: D "). Excluir shift: = xlToLeft Application.CutCopyMode = False End Com Selection.AutoFilter Range (" A1 "). Selecione End Sub 

Nota

Obrigado a [//ccm.net / ... venkat1926 por essa dica no fórum.

Artigo Anterior Próximo Artigo

Principais Dicas