Dies ist meine Probe in Sheet1 (Zahlen von B bis F sind einfach = Tabelle2! B2 Art der Formel)VBA, nach unten ziehen Formel wo es leere Zellen
A B C D E F
11/12/2016 300 4 4 3 85
12/12/2016 23 4 4 2 87
13/12/2016 21 4 4 2 79
14/12/2016 67 4 4 4 76
Ich versuche, unterhalb der einfügen Spalte A die Daten der nächsten 7 Tage (die ich erreicht habe) und die Formel von Spalte B nach F ziehen. Ich kann RANGE B1: F7 nicht verwenden, weil ich in der Woche die neuen 7 Tage an die alten Daten anhängen werde , also brauche ich dynamische Bereiche.
Hier ist mein Versuch, aber kehre ich auf dem InRange concatentation in der for-Schleife (Error = Bereichs ob object_global nicht):
Sub test()
Dim r As Range Set r = Intersect(ActiveSheet.UsedRange, Range("A:A")).Cells.SpecialCells(xlCellTypeBlanks)
r(1).Formula = "=Today()"
r(2).Formula = "=Today()+1"
r(3).Formula = "=Today()+2"
r(4).Formula = "=Today()+4"
r(5).Formula = "=Today()+5"
r(6).Formula = "=Today()+6"
Dim inRange As Range
Set inRange = Sheets("Sheet1").Range("B" & i & ":" & "F" & i)
For i = 1 To 7
Sheets("Sheet1").Range("B1:F1").Select
Selection.AutoFill Destination:=Range(inRange), Type:=xlFillDefault
Next i
End Sub
Dank
Danke, es tut work.However ich möchte verstehen, warum Sie nicht zu empfehlen Verwenden Sie dies: Setzen Sie r = Intersect (ActiveSheet.UsedRange, Range ("A: A")). Cells.SpecialCells (xlCellTypeBlanks). Vielen Dank! – Vincenzo
@Vincenzo Wenn ich diese Codezeile getestet habe, habe ich die von Ihnen bereitgestellte Tabelle kopiert, sodass im UsedRange keine leeren Zellen vorhanden waren. Dies verursachte, dass VBA einen Fehler verursachte, da es keine xlCellTypeBlanks in der Kreuzung finden konnte. Wenn Sie also leere Zellen unterhalb dieses Bereichs haben, sollten Sie diese Zeilen entfernen, wenn es viele gibt (Strg + Ende, um die letzte Zelle im verwendeten Bereich zu finden). Wenn viele leere Zeilen vorhanden sind und Sie sie eliminieren, wird die Dateigröße reduziert und die Leistung wird besser (weniger Zeitberechnung). –