Es können nicht alle Daten in der Spalte kopiert werden – Excel VBA

Es können nicht alle Daten in der Spalte kopiert werden – Excel VBA

Ich versuche, alle Daten in einer bestimmten Spalte zu kopieren und sie über VBA in ein anderes Blatt in meiner Arbeitsmappe einzufügen, da dies über mehrere Spalten hinweg wiederholt werden soll. Aus irgendeinem Grund werden nicht alle Daten übertragen, da einige Daten leer sind. Mein Code in VBA lautet wie folgt.

Bin neu bei VBA und weiß die Hilfe von jedem zu schätzen, danke!

wsRawT und wsDetI sind meine definierten Variablen für das angegebene Arbeitsblatt.

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

Antwort1

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

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

Antwort2

Zum Kopieren von Spalten kann ein Benutzerformular verwendet werden. Das Benutzerformular enthält zwei Listenfelder. Die Spaltenüberschriften auf Blatt1 werden im ersten Listenfeld aufgelistet. Zwischen den Listenfeldern wird das Element durch Klicken auf die Schaltfläche von Listenfeld1 in Listenfeld2 verschoben. Die ausgewählten Spalten aus Listenfeld2 werden mit der Methode „Erweiterter Filter“ in das andere Blatt (Blatt2) kopiert.

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

Bildbeschreibung hier eingeben

Beispieldatei

verwandte Informationen