VBA PasteSpecial操作失败?

时间:2014-11-21 22:10:12

标签: vba excel-vba excel

我尝试从一个listobject剪切一行到另一个listobject:

'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

makro停在上面粘贴的代码的最后一行。它告诉我范围对象的粘贴操作失败。知道为什么会这样吗?我不认为它与listobjects有关,因为我似乎在尝试使用上面的代码剪切和粘贴其他行时遇到问题。

1 个答案:

答案 0 :(得分:1)

由于您使用的是Cut,请尝试Insert而不是PasteSpecial。这与您在使用Excel界面时看到的“插入剪切单元格”同义:

trgtWorkSheet.Cells(lPasteRow, lPasteColumn).Insert

另外 - 确保您粘贴/插入的单元格不在正在剪切的范围内。

相关问题