Wpis z mikrobloga

Chciałbym stworzyć dynamiczny Range. W pewne komórki wpisuje sobie zakres np od 25 do 60. Zakres w tym wypadku to 35 komórek.

Teraz chciałbym wykonać AutoFill w zakresie od np. B100 do B135 z tym, że właśnie ten końcowy zakres jest zmienny. Jak można to zapisać aby było poprawnie?

Dim rng As Range
Dim a As Integer
a = (Worksheets("krok1").Range("F8").Value) - (Worksheets("krok1").Range("F7").Value)
Set rng = Range("B100:B(100+a)") ???????????? wiem że to głupie ale już nie miałęm pomysłu
ActiveCell.FormulaR1C1 = "=CONCATENATE(R3C2,"":"",R7C6)"
Selection.Copy
Range("B100").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B100").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range(rng), Type:=xlFillDefault
ActiveWindow.SmallScroll Down:=0
End Sub

#vba #programowanie #excel
  • 5
@brak_nicku:
Selection.AutoFill Destination:=Range("rng"), Type:=xlFillDefault

w tej końcówce jeszcze mam jakiś błąd.. method Range of object _global failed

wiesz o co może chodzić?
Range("rng")


@nevill: po prostu rng jeżeli się odwołujesz do zakresu który już jest przypisany do zmiennej. Opcjonalnie:

Selection.AutoFill Destination:=Range("B100:B" & (100 + a)), Type:=xlFillDefault
@croppz: A znasz powody dlaczego przy wpisywaniu
Selection.AutoFill Destination:=Range("B100:B" & (100 + a)), Type:=xlFillSeries wcale nie wypełnia mi komórek seriami, tylko kopiami pierwszej. Przez jakiś czas było wporządku i nagle się spieprzyło... Nie wiem #!$%@? - czy w tym excelu da się ustawić fabrycznie AutoFill na serie? Może to zależy od formatu komórek?