复制/粘贴可变编号行(自动填充)
Posted
技术标签:
【中文标题】复制/粘贴可变编号行(自动填充)【英文标题】:Copy/Paste variable number rows (autofill) 【发布时间】:2016-04-27 12:06:39 【问题描述】:我想在一个代码中复制和粘贴一些内容,这对我来说很难:我无法选择可变的行数。我将粘贴整个代码,但同样的问题出现了 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】:使用类似的东西。
Cells(25, 13).Resize(Cells(Rows.Count, 14).End(xlUp).Row - 25).Value = _
Range("N25:N" & Cells(Rows.Count, 14).End(xlUp).Row).Value
这将为您复制到最后一行。
要使用一系列公式执行此操作,请使用 this。
Cells(25, 13).Resize(Cells(Rows.Count, 14).End(xlUp).Row - 25).Formula = _
Range("N25:N" & Cells(Rows.Count, 14).End(xlUp).Row).Formula
【讨论】:
谢谢,一个问题:我应该把你的意见放在哪里? Selection.AutoFill Destination:=Range("M25:M34") 而不是 range("M25:M34") ? 把它放在选择复制和粘贴行的地方,这一行将选择并将值粘贴到所需的范围内。请参阅我更新的公式答案。 抱歉又打扰了,还是不行?我究竟做错了什么?请参阅我的原始帖子以获取我的新代码以上是关于复制/粘贴可变编号行(自动填充)的主要内容,如果未能解决你的问题,请参考以下文章
Excel怎么相同的名称(名称是打乱的)自动填充对应的编号?