2014-11-21 58 views
0

我嘗試從一個的ListObject切一行到另一個的ListObject:上面粘貼代碼的最後一行VBA PasteSpecial操作失敗?

'Create new row 
Dim lNewRowNumber As Long 
lNewRowNumber = loTrgt.DataBodyRange.Row + loTrgt.ListRows.Count 
trgtWorkSheet.Rows(lNewRowNumber).EntireRow.Insert 

'Cut old row 
Dim lCutRow As Long 
Dim lCutStartColumn As Long 
Dim lCutEndColumn As Long 
lCutRow = t.Row 
lCutStartColumn = loSrc.Range.Column 
lCutEndColumn = loSrc.Range.Column + loSrc.ListColumns.Count - 1 

'Paste row 
Dim lPasteRow As Long 
Dim lPasteColumn As Long 
lPasteRow = lNewRowNumber 
lPasteColumn = loTrgt.Range.Column 

t.Worksheet.Range(t.Worksheet.Cells(lCutRow, lCutStartColumn), t.Worksheet.Cells(lCutRow, lCutEndColumn)).Cut 
trgtWorkSheet.Cells(lPasteRow, lPasteColumn).PasteSpecial xlPasteAll 

的萬客隆停止。它告訴我範圍對象的粘貼操作失敗。任何想法,爲什麼這可能是?我不認爲它與列表對象有關,因爲在使用上面的代碼嘗試剪切和粘貼其他行時,我似乎遇到了問題。

回答

1

由於您使用的是Cut,請嘗試Insert而不是PasteSpecial。這是「插入剪切單元格」,你看,當你使用的是Excel界面的代名詞:

trgtWorkSheet.Cells(lPasteRow, lPasteColumn).Insert 

而且 - 確保您粘貼單元格/插入的不是在被切割的範圍內。