复制/粘贴可变数字行(自动填充)

时间:2016-04-27 12:06:40

标签: excel vba excel-vba

我想在一个代码中复制并粘贴一些内容,对我来说很难:我无法选择变量行数。我将粘贴整个代码,但同样的问题出现3次。我想选择一个单元格,粘贴它(第一部分@“M25”)而不是自动填充到表格中有填充的最后一行(参考例如“L”列中填充的长度),所以它应该计算表中已填充的行,而不是在我的代码中停止@ M34,因为行可能不止于此。

我知道我应该使用本主题中的内容: Autofill with a dynamic range

但我无法弄清楚如何从第25行开始,然后再向前到K的填充停止...

Range("B14").Select
Selection.Copy
Range("M25").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("M25").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range**("M25:M34")**
Range("M25:M34").Select
Range("N25").Select
ActiveCell.FormulaR1C1 = _
    "=INDEX(CLIENTS!C[-8],MATCH(CONTROL!R14C2,CLIENTS!C1,0))"
Range("N25").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("N25:N34")
Range("N25:N34").Select
Range("O25").Select
ActiveCell.FormulaR1C1 = _
    "=INDEX(CLIENTS!C[-8],MATCH(CONTROL!R14C2,CLIENTS!C1,0))"
Range("O25").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("O25:O34")
Range("A25:O25").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

代码可能看起来很难看,因为我刚开始使用VBA并尝试使用记录功能

感谢

新代码的一部分:

Range("B14").Select
Selection.Copy
Range("M25").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("M25").Select
Cells(25, 13).Resize(Cells(Rows.Count, 14).End(xlUp).Row - 25).Value = _
Range("M25:M" & Cells(Rows.Count, 14).End(xlUp).Row).Value
Range("N25").Select

1 个答案:

答案 0 :(得分:2)

使用类似的东西。

Cells(25, 13).Resize(Cells(Rows.Count, 14).End(xlUp).Row - 25).Value = _
Range("N25:N" & Cells(Rows.Count, 14).End(xlUp).Row).Value

这将为你复制到最后一行。

要使用一系列公式执行此操作,请使用此选项。

Cells(25, 13).Resize(Cells(Rows.Count, 14).End(xlUp).Row - 25).Formula = _
    Range("N25:N" & Cells(Rows.Count, 14).End(xlUp).Row).Formula