在Excel中粘贴值C#

您好,我一直在尝试使用另一个工作表上的粘贴特殊粘贴值,但我试过的每一件事情,我不断收到相同的错误。

Range类的PasteSpecial方法失败

xl.Application xlApp = Globals.ThisWorkbook.Application; xl.Workbook wb = xlApp.ActiveWorkbook; xl.Worksheet data = wb.Sheets["Data"]; xl.Worksheet datasheet = wb.Sheets["DataSheet"]; xl.Worksheet pivot = wb.Sheets["Pivot"]; xl.Range dataRng = data.Range["A1:C" + xlApp.WorksheetFunction.CountA(data.Range["A:A"])]; xl.Range pivotRng = pivot.Range["A1"]; addPivot ap = new addPivot(); ap.DataRange = dataRng; ap.DestRng = pivotRng; ap.PivotSheet = pivot; ap.createPivot("FullName","Date"); pivot.PivotTables("PivotTable1").NullString = "0"; pivot.UsedRange.Copy(); datasheet.Range["A2:GT999"].ClearContents(); datasheet.Range["A2"].PasteSpecial(xl.XlPasteType.xlPasteValues, xl.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); datasheet.Range["2:2"].ClearContents(); 

我努力了

 datasheet.Range["A2"].PasteSpecial(xl.XlPasteType.xlPasteValues datasheet.Range["A2"].PasteSpecial(xl.XlPasteType.xlPasteValues, xl.XlPasteSpecialOperation.xlPasteSpecialOperationNone) 

和你上面看到的。

谢谢!

Copy之前执行ClearContents 。 当您清除这些单元格时,Excel将删除您复制的范围(与在程序中按ESC相同)。 然后,您正在尝试PasteSpecial但剪贴板中不再有任何内容。

 //...code above datasheet.Range["A2:GT999"].ClearContents(); pivot.UsedRange.Copy(); datasheet.Range["A2"].PasteSpecial(xl.XlPasteType.xlPasteValues, xl.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing); //code below... 

如果您正在逐步debugging,则会在ClearContents调用后看到复制范围周围的虚线边框消失。 Excel有点奇怪(但是可以预测)关于何时忘记复制的范围。 在Workbook任何地方编辑单元格是让它忘记的一个可靠方法。