No se pueden copiar todos los datos en la columna - Excel VBA

No se pueden copiar todos los datos en la columna - Excel VBA

Estoy intentando copiar todos los datos en una columna específica y pegarlos en otra hoja de mi libro de trabajo a través de VBA, ya que esto se repetirá en varias columnas. Por alguna razón, no todos los datos se transfieren, ya que hay algunos datos en blanco. Mi código en VBA es el siguiente.

Soy nuevo en VBA, agradezco la ayuda de todos, ¡gracias!

wsRawT y wsDetI son mis variables definidas para la hoja de trabajo especificada.

wsRawT.Select
    range("AU1").Select
    ActiveCell.Offset(1, 0).range("A1").Select
    range(Selection, Selection.End(xlDown)).Select
    Selection.copy

wsDetI.Select
    range("A1").Select
    ActiveCell.Offset(1, 0).range("A1").Select
    ActiveSheet.Paste

Respuesta1

Sub test()
    Dim wsRawT As Worksheet, wsDetI As Worksheet
    Set wsRawT = ThisWorkbook.Sheets("Sheet1")
    Set wsDetI = ThisWorkbook.Sheets("Sheet2")

    wsRawT.Range(wsRawT.Cells(2, 47), wsRawT.Cells(wsRawT.UsedRange.Rows.Count, 47)).Copy _
           Destination:=wsDetI.Cells(2, 1)

End Sub

PD.Range("AU2").Column = 47

Respuesta2

Se puede utilizar un formulario de usuario para copiar columnas. El formulario de usuario contiene dos cuadros de lista. Los encabezados de columna de la hoja 1 se enumeran en el primer cuadro de lista. Entre los cuadros de lista, el elemento se mueve del cuadro de lista1 al cuadro de lista2 haciendo clic en el botón. . Las columnas seleccionadas del cuadro de lista2 se copian a otra hoja (hoja2) con el método de filtro avanzado.

Private Sub CommandButton1_Click()
Dim FirstCell, LastCell As Range
Dim basliklar As Integer
Dim baslangic_satiri As Long
Sheets("report").Select
If ListBox2.ListCount = 0 Then
MsgBox "You don't choose filter field "
Exit Sub
End If
ProgressDlg.Show 'Progress Bar

  Set LastCell = Sheets("database").Cells(Sheets("database").Cells.Find(What:="*", SearchOrder:=xlRows, _
      SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
      Sheets("database").Cells.Find(What:="*", SearchOrder:=xlByColumns, _
      SearchDirection:=xlPrevious, LookIn:=xlValues).Column)
  Set FirstCell = Sheets("database").Cells(Sheets("database").Cells.Find(What:="*", After:=LastCell, SearchOrder:=xlRows, _
      SearchDirection:=xlNext, LookIn:=xlValues).Row, _
      Sheets("database").Cells.Find(What:="*", After:=LastCell, SearchOrder:=xlByColumns, _
      SearchDirection:=xlNext, LookIn:=xlValues).Column)

For basliklar = 0 To ListBox2.ListCount - 1
baslangic_satiri = 2
Sheets("report").Cells(baslangic_satiri - 1, basliklar + 1) = ListBox2.List(basliklar, 0)

Sheets("database").Range(FirstCell, LastCell).AdvancedFilter _
    Action:=xlFilterCopy, CriteriaRange:=Sheets("database").Range(FirstCell, LastCell), _
    CopyToRange:=Sheets("report").Cells(baslangic_satiri - 1, basliklar + 1), _
    Unique:=False
Next
Sheets("report").Columns.EntireColumn.AutoFit
CommandButton6.Enabled = True
End Sub

ingrese la descripción de la imagen aquí

Archivo de ejemplo

información relacionada