[英]Copy formula from a specific sheet and cell and drag it down until specific column last row
到目前为止,我的代码如下; 计算最后一个单元格工作正常,但是将错误的数据复制/粘贴到错误的工作表中。 应该复制数据并使用工作表“解析”单元格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
解决了。 非常感谢。
Range("B2").Copy
默认情况下,以上内容将从Activesheet中获取
您必须告诉它您要从哪个表中选择该范围/值。
sheets("Parsing").Range("B2").Copy
编辑:刚注意到您的
要与一起实际使用,您需要使用“。” 例如,您的复制行如下所示
.Range("B2").Copy
需要注意的另一件事:
Range("B2:B" & myLastRow).Select
ActiveSheet.Paste
是相当低效的,下面会更好。 一般而言,最好选择远离它,这相当慢
Range("B2:B" & myLastRow).Paste
或与您一起
.Range("B2:B" & myLastRow).Paste
我只是复制并粘贴您的代码并运行它。 除了在您的子代码之前添加“ 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.