从特定工作表和单元格复制公式,并将其拖动到特定列的最后一行
到目前为止,我有下面的代码; 统计最后一个单元格工作正常,但复制/粘贴错误的数据表错误的数据。 应复制数据并使用Sheet“Parsing”单元格B2中的公式,并使用VBA的主表单。 看起来缺less的是执行复制/select“parsing”工作表,但没有设法做到这一点。
Sub drag_formula_original() Dim myLastRow As Long With Worksheets("Parsing") myLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row .Range("B2").Copy Destination:=.Range("B2:B" & myLastRow) Application.CutCopyMode = False End With End Sub
解决了。 非常感谢。
Range("B2").Copy
以上将默认从Activesheet中获取
你必须告诉它你希望从哪个表中select范围/值。
sheets("Parsing").Range("B2").Copy
编辑:只注意你的
要实际使用一个与你需要使用“。” 例如你的复制行如下所示
.Range("B2").Copy
另外要注意的是:
Range("B2:B" & myLastRow).Select ActiveSheet.Paste
效率相当低,下面会更好。 一般来说select最好远离它是相当缓慢的
Range("B2:B" & myLastRow).Paste
或与你同在
.Range("B2:B" & myLastRow).Paste
我只是复制和粘贴你的代码,并运行它。 我没有改变你的代码,除了在你的sub之前添加“Option Explicit”。 (只是个人的习惯)
Option Explicit Sub drag_formula_original() Dim myLastRow As Long With Worksheets("Parsing") myLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row Range("B2").Copy Range("B2:B" & myLastRow).Select ActiveSheet.Paste Application.CutCopyMode = False End With End Sub
然而,我在B2格中使用了一个非常简单的公式。 我所做的是A列从1到10,C列从11到20.单元格B2是= A2 + C2。 在运行代码之后,我检查了列B中的每个单元格,并且它们都有正确的公式,而不是硬编码的值。
当我想要做这样的事情的时候,我做了一个小窍门,但是却不知道如何logging我的一个macros观,即通过一点点的方式拖动单元格公式,然后停止录制并查看它所创build的代码。 从那你应该能够调整它做你想做的事情。
当我这样做,我得到了这个代码:
Sub Macro1() ' ' Macro1 Macro ' ' Range("B2").Select Selection.AutoFill Destination:=Range("B2:B15"), Type:=xlFillDefault Range("B2:B15").Select End Sub