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

时间:2015-06-05 15:27:12

标签: excel vba excel-vba

到目前为止,我的代码如下;计算最后一个单元格工作正常但是将错误的数据复制/粘贴到错误的工作表。应该复制数据并使用Sheet" Parsing"中的公式。单元格B2,它使用的主要表格是VBA。看起来很简单,缺少的是执行复制/选择以解析"解析"表,但没有设法做到。

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

它解决了。非常感谢。

2 个答案:

答案 0 :(得分:1)

Range("B2").Copy 

以上内容默认从Activesheet

中获取

您必须告诉它您希望从中选择范围/值的工作表。

sheets("Parsing").Range("B2").Copy 

编辑:刚注意到你的With

要实际使用a,你需要使用"。"例如你的副本行如下所示

.Range("B2").Copy 

还有一点需要注意:

Range("B2:B" & myLastRow).Select
ActiveSheet.Paste

效率相当低,下面会更好。选择一般最好远离它是相当慢的

 Range("B2:B" & myLastRow).Paste

或与你一起

.Range("B2:B" & myLastRow).Paste

答案 1 :(得分:0)

我只是复制并粘贴了你的代码然后运行它。我在代码中没有更改任何内容,除了添加" 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列中的每个单元格,它们每个都有正确的公式,而不是硬编码值。

当我想做这样的事情时,我会做的一个技巧但是无法弄清楚我是如何记录我的一个宏来拖动单元格公式,然后停止录制并查看代码吧制作。从那以后你应该能够调整它来做你想做的事。

当我这样做时,我得到了这段代码:

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("B2").Select
    Selection.AutoFill Destination:=Range("B2:B15"), Type:=xlFillDefault
    Range("B2:B15").Select
End Sub