Sub AutoFill()
Dim x As Long
Dim y As Long
Dim lastrow As Long
Dim lastcolumn As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
lastcolumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
lastrow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
For x = 2 To lastrow
If Cells(x, 2).Value = "" Then
Cells(x, 2).Value = Cells(x - 1, 2).Value
Cells(x, 3).Value = Cells(x - 1, 3).Value
Cells(x, 5).Value = Cells(x - 1, 5).Value
End If
Next x
Application.ScreenUpdating = True
End Sub
Mit dem obigen Code Meine Zellen werden gefüllt, aber die letzte Zeile füllt bis zum Ende der Excel-Tabelle. In der Excel-Tabelle ist die Spalte bereits in Spalte B
C
& E
ausgefüllt, sollte automatisch nach unten gefüllt werden. Was sollten die Änderungen im Code sein?Automatisches Ausfüllen der Zelle in Excel VBA Makro
warum 'ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count' ?? http: //stackoverflow.com/questions/71180/how-can-i-find-last-row- that-contains-data-in-the-Excel-Blatt-mit-einem-Makro – cyboashu
Ihr Code arbeitet nach Ihren Anforderungen auf meinem PC. [Check] (https://www.dropbox.com/s/kg380esjoyxb0o9/autofill_sample.xlsm?dl=0) – skkakkar
Für lastRow würde ich stattdessen Ihre drei Spalten vergleichen und die letzte Zeile von dort abrufen. 'UsedRange' verwendet meiner Erfahrung nach nicht immer die Bandbreite, die ich erwarten würde. 'lastRow = Max (Zellen (rows.count, 2) .End (xlUp) .Row, Zellen (rows.count, 3) .End (xlUp) .Row, Zellen (rows.count, 5) .End (xlUp) .Row' * oder * 'LastRow = Cells.Find (" * ", searchorder: = xlByRows, Suchrichtung: = xlPrevious) .Row' – BruceWayne