La siguiente macro me va a permitir encontrar un nombre en el encabezado de la hoja 1 y copia de toda la columna a de la hoja 2. Ahora quiero seguir el código, pero estoy enfrentando un problema, que trataré de explicar.

Sub CopyColumnByTitle()
'Find "Name" in Row 1
  With Sheets(1).Rows(1)
   Set t = .Find("Name", lookat:=xlpart)
'If found, copy the column to Sheet 2, Column A
'If not found, present a message
     If Not t Is Nothing Then
        Columns(t.Column).EntireColumn.Copy _
          Destination:=Sheets(2).Range("A1")
       Else: MsgBox "Title Not Found"
     End If
  End With
End Sub

después de que todos los datos se pegan en la hoja 2 de la siguiente manera ….

Sheet 2
Name Age Address    Date of Birth
John    25  US  1-Sep-11
Hary    26  US  1-Sep-11
John    27  UK  1-Sep-11
Hary    28  US  2-Sep-11
King    29  UK  3-Sep-11
Peter   30  US  3-Sep-11

Necesito para el conjunto de filtros como se muestra a continuación y copiar los datos filtrados a la hoja 3 como en el anterior código:

  1. Necesito para establecer los criterios de filtro en la hoja 2 que me ayuda a ver Names que son iguales a «Juan» o «Hary» y copiar y pegar los datos en la hoja 3.
  2. Tengo que crear otro filtro donde Name es igual a «Juan» y Date of Birth es igual a «1-Sep-11» (nota de la fecha en que debe ser siempre el día de ayer). Copiar y pegar todo
    los datos en la hoja 4.
  3. En el tercer tiempo, es necesario establecer un filtro donde Name es igual a «el Rey» y copia el pasado y el conjunto de los datos en la hoja 5.

Muchas gracias Juan por tu respuesta, la respuesta que dio es eficaz, pero ya he diseñado mi código de vencimiento de las necesidades de urgencia.

Necesito una pequeña ayuda en el mismo. Estoy pegando alguna parte del código, ya que no es posible pegar el código completo.

El código me permite copiar datos de un libro a otro, pero mientras se copian los datos, tengo que copiar una columna completa, porque hay algunas celdas en blanco en ella. Así que si yo no uso .EntireColumn, la macro no se copia de las células después de la celda en blanco. También ahora, mientras que pegar los datos en el otro libro de trabajo, necesito pegar sin el título.

Yo estaría muy agradecido si me ayudan con esto.

Windows("macro2.xlsm").Activate
Range(Range("M2"), Range("N2").End(xlDown)).EntireColumn.Select
Application.CutCopyMode = False
Selection.Copy
Windows("formula.xls").Activate
Range(Range("I2"), Range("J2").End(xlDown)).EntireColumn.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
  • no creo que su primer código funcionará bien (hay algunos errores de sintaxis). Cómo los datos se supone que para ser filtrada en el tercer y cuarto hojas? ¿podemos configurar el filtro de Juan en el código?
InformationsquelleAutor jimz | 2011-09-08

1 Comentario

  1. 2

    Tarea 1:

     thisworkbook.sheets(2).activate
     activesheet.range("A:A").select 'set column you filter for probable names here
     Selection.AutoFilter Field:=1, Criteria1:="=John", Operator:=xlOr, _
     Criteria2:="=Hary" ' filters  only for hary or john 
     activate.usedrange.select ' now select the filtered sheet to copy  
     selection.copy 
     ActiveSheet.ShowAllData ' now retain back the data so that you get your original file
     thisworkbook.sheets(3).activate  'select your sheet3 and paste it
     activate.range("A1").select
     activesheet.paste

    Tarea 2:

     thisworkbook.sheets(2).activate
     activesheet.range("A:A").select \'set column you filter for probable names here
     Selection.AutoFilter Field:=1, Criteria1:="John" \ filters for john
     Selection.AutoFilter Field:=2, Criteria1:="1-sep-2011"  \ filters for date only for john rows 
     activate.usedrange.select ' now select the filtered sheet to copy  
     selection.copy 
     ActiveSheet.ShowAllData ' now retain back the data so that you get your original file
     thisworkbook.sheets(4).activate  'select your sheet3 and paste it
     activate.range("A1").select
     activesheet.paste

    Tarea 3

     thisworkbook.sheets(2).activate
     activesheet.range("A:A").select 'set column you filter for probable names here
     Selection.AutoFilter Field:=1, Criteria1:="=King" ' filters  only king 
     activate.usedrange.select ' now select the filtered sheet to copy  
     selection.copy 
     ActiveSheet.ShowAllData ' now retain back the data so that you get your original file
     thisworkbook.sheets(5).activate  'select your sheet3 and paste it
     activate.range("A1").select
     activesheet.paste

    Probablemente podría dar alguna idea de cómo hacerlo. cualquier duda más no dudes en preguntarme.

    Gracias! Probablemente usted podría ir para el destino de copia:= y muchos más para hacerlo . en realidad tengo que ir ahora, así que solo te dio una muestra de la pieza a trabajar.

Dejar respuesta

Please enter your comment!
Please enter your name here