到目前为止,我的代码如下;计算最后一个单元格工作正常但是将错误的数据复制/粘贴到错误的工作表。应该复制数据并使用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
它解决了。非常感谢。
答案 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