从特定工作表和单元格复制公式,并将其拖动到特定列的最后一行

到目前为止,我有下面的代码; 统计最后一个单元格工作正常,但复制/粘贴错误的数据表错误的数据。 应复制数据并使用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