2016-11-30 8 views
0

Ich bin mit dem folgenden Code zu arbeiten, und wo ich habe eine harte Zeit, um diese zu umgehen ist das Stück in Klammern [CURRENT COLUMN]VBA kopieren Formel Letzte Zeile Dann Nächste Spalte

Ich kann nicht ganz scheinen Verwenden Sie die aktuell verwendete Spalte, um die Formel einzufügen.

Ziel ist es, von den Spalten K zu END zu gehen. Wenn es eine Formel in Zeile 2 dieser Spalte gibt, kopieren Sie diese Formel nach unten und fahren Sie mit der nächsten Spalte fort.

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' ... ändern? und möchtest du wahrscheinlich auch den Verweis auf StartCol ändern? – SJR

+0

Dang das habe ich mal probiert und sowas vom 'oRng' gab nur eine' 1 zu n' zurück. Aber ja, ich denke, das hat funktioniert. – GregdeLima

+3

Beachten Sie, dass 'Range'- und' Cells'-Aufrufe mit 'oWkst' qualifiziert werden sollten. Andernfalls wird der Code ungültig, wenn Sie "oWkst" auf etwas anderes als "ActiveSheet" setzen. –

Antwort

1

Try

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

zu

Range(Cells(2, oRng.Column), Cells(LastRow, oRng.Column)).PasteSpecial (xlPasteFormulas) 
Verwandte Themen