【发布时间】:2014-10-09 18:28:34
【问题描述】:
我正在尝试从一个有 5 张纸的工作簿中复制。然后将所有 5 个工作表中的内容粘贴到另一个工作簿工作表中。
第一次粘贴成功,然后尝试粘贴第二张会报错:
由于复制区域和粘贴区域不同,无法粘贴信息 大小或形状。请尝试以下方法之一:
- 单击单个单元格,然后粘贴。
- 选择一个大小和形状相同的矩形,然后粘贴。
以下是我的代码:
int rowCount = 0;
app = Globals.ThisAddIn.Application;
sourceBook = app.ActiveWorkbook;
targetBook = app.Workbooks.Add(Type.Missing);
targetSheet = targetBook.Worksheets.Add(Type.Missing);
targetSheet.Name = "Merge Result";
foreach (Excel.Worksheet sheet in sourceBook.Worksheets)
{
Excel.Range workSheetRange = sheet.UsedRange;
workSheetRange.Copy(Type.Missing);
Excel.Range pasteStartCell = (Excel.Range)targetSheet.Cells[rowCount + 1, 1];
Excel.Range pasteEndCell = (Excel.Range)targetSheet.Cells[rowCount + workSheetRange.Rows.Count, workSheetRange.Columns.Count];
Excel.Range pasteArea = targetSheet.get_Range(pasteStartCell, pasteEndCell);
pasteArea.Select();
targetSheet.Paste(Type.Missing, Type.Missing);
rowCount = rowCount + workSheetRange.Rows.Count;
}
我也试过
Excel.Range pasteStartCell = (Excel.Range)targetSheet.Cells[rowCount + 1, 1];
pasteStartCell.Select()
然后粘贴,同样的错误信息。
有谁知道我哪里出错了?
【问题讨论】:
-
您好 jbarker2160:感谢您对 Range.PasteSpecial 进行尝试的建议,但仍然出现相同的错误。是否需要在第二次复制之前清除剪贴板?
-
不要发布不能作为答案的更改 - 使用更新编辑您的问题是正确的过程。