2016-11-30 275 views
0

我用下面的代码的工作,并在那里我有一个很难得到这个局面是在括号中的一块[CURRENT COLUMN]VBA复制公式至最后一行接着下一列

我不能完全似乎让它使用当前使用的列来粘贴公式。

目标是从列KEND然后如果该列的第2行中存在公式,请将该公式下移并转到下一列。

Option Explicit 
Sub recalcdash() 
Dim oWkbk As Workbook 
Dim oWkst As Worksheet 
Dim oRng As Range 
Dim LastCol As Long 
Dim LastRow As Long 
Dim StartCol As Integer 
Dim StartRow As Long 


StartCol = 11 
Set oWkst = ActiveSheet 


LastRow = oWkst.Range("A" & oWkst.Rows.Count).End(xlUp).Row 
LastCol = oWkst.Cells(2, oWkst.Columns.Count).End(xlToLeft).Column 

For Each oRng In Range(Cells(2, 11), Cells(2, LastCol)) 
     If oRng.HasFormula Then 
      oRng.Copy 
      Range(Cells(2, StartCol), Cells(LastRow, [CURRENT COLUMN])).PasteSpecial (xlPasteFormulas) 
     End If 
     Next oRng 

End Sub 
+3

'oRng.Column' ...?并且您可能还想更改对StartCol的引用? – SJR

+0

当我尝试过一次,而'oRng'只返回了'1到n'。但是,我认为这是有效的。 – GregdeLima

+3

请注意''Range'和'Cells'调用应该使用'oWkst'进行限定。否则,当您将'oWkst'设置为'ActiveSheet'以外的任何其他代码时,您的代码将会中断。 –

回答

1

尝试修改

Range(Cells(2, StartCol), Cells(LastRow, [CURRENT COLUMN])).PasteSpecial (xlPasteFormulas 

Range(Cells(2, oRng.Column), Cells(LastRow, oRng.Column)).PasteSpecial (xlPasteFormulas) 
相关问题