VBA PasteSpecial操作失败?
问题描述:
我尝试从一个的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
的万客隆停止。它告诉我范围对象的粘贴操作失败。任何想法,为什么这可能是?我不认为它与列表对象有关,因为在使用上面的代码尝试剪切和粘贴其他行时,我似乎遇到了问题。
答
由于您使用的是Cut
,请尝试Insert
而不是PasteSpecial
。这是“插入剪切单元格”,你看,当你使用的是Excel界面的代名词:
trgtWorkSheet.Cells(lPasteRow, lPasteColumn).Insert
而且 - 确保您粘贴单元格/插入的不是在被切割的范围内。