Ich versuche, meinen Code auszuführen, aber es gibt mirVBA Kopieren sichtbare Zellen geben nur
Fehler 1004
Obwohl ich vor ähnliche Syntax verwendet habe.
Mein Ziel: Ich möchte sichtbare Zellen nur aus der Spalte kopieren, die "MTD" in seiner ersten Zeile enthält. Sichtbare Zellen, die ich kopieren möchte, befinden sich nur in Zeilen von 75 bis 139.
'searching for column with "MTD" in it
Dim NumCol As Integer
Dim Column As Integer
Column = Workbooks("xx.xlsx").Sheets("Sheet1").UsedRange.Columns.Count
For i = 1 To Column
If Workbooks("xx.xlsx").Sheets("Sheet1").Cells(1, i).Value = "MTD" Then NumCol= i
Next i
'copying visible cells only from Column with MTD and only in rows from 75 to 139
Dim MyRange As Range
'Line below is the debugged line
Set MyRange = Workbooks("xx.xlsx").Sheets("Sheet1").Range(Cells(75, NumCol), Cells(139, NumCol))
MyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks ("xy.xlsx").Sheets("Sheet2").Range("A2")
Ich habe auch versucht, dies zu verwenden, aber 424 Fehler erschien.
Dim MyRange As Range
Set MyRange = Workbooks("xx.xlsx").Sheets("Sheet1").Range(Workbooks("xx.xlsx").Sheets("Sheet1").Cells(75, NumCol), Workbooks("xx.xlsx").Sheets("Sheet1").Cells(139, NumCol))
'This time it debugged this row (error 424)
MyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks("xy.xlsx").Sheets("Sheet2").Range("A2")
Jede Hilfe würde geschätzt.
Danke :)
Ich schätze, 1004 Fehler kann auf 'NumCol' zurückzuführen sein. Wenn die Bedingung 'If Workbooks (" xx.xlsx "). Sheets (" Sheet1 "). Zellen (1, i) .Value =" MTD "' ist nie in Ihrer for-Schleife erfüllt, dann wird "NumCol" 0 und In den nächsten Zeilen wird der Code auf die 0. Spalte zeigen und der Fehler kann auftreten. – Siva
Versuchen Sie, den 'MyRange' zu löschen und stattdessen' Columns (NumCol) .SpecialCells (xlCellTypeVisible) .Copy' zu verwenden. Lass mich wissen ob es funktioniert. –
@Siva Ich habe versucht, MsgBox nach der Schleife zu setzen, um zu sehen, ob das das Problem ist, aber es hat das richtige gefunden. – blau