C# Excel复印工作表

C# Excel复印工作表,c#,excel,vba,copy,worksheet,C#,Excel,Vba,Copy,Worksheet,在Excel VBA中(或者如果可以,在C#中,我正在使用.NET中的Excel对象库),如何将工作表从一个工作簿复制到另一个工作簿中的另一个工作表。基本上,我所做的是将我的每一张工作表复制到另一个工作簿的中心工作表中,然后在那里完成我需要做的所有事情。我尝试使用Range.Copy方法,我将Destination参数作为其他工作簿的范围。它工作得很好,但有一个问题,那就是每次我复制它时,它都会替换工作表中较旧的数据。我如何做这样的事情,以便当我粘贴它粘贴在表的末尾 编辑:我搜索并找到了一种方法

在Excel VBA中(或者如果可以,在C#中,我正在使用.NET中的Excel对象库),如何将工作表从一个工作簿复制到另一个工作簿中的另一个工作表。基本上,我所做的是将我的每一张工作表复制到另一个工作簿的中心工作表中,然后在那里完成我需要做的所有事情。我尝试使用Range.Copy方法,我将Destination参数作为其他工作簿的范围。它工作得很好,但有一个问题,那就是每次我复制它时,它都会替换工作表中较旧的数据。我如何做这样的事情,以便当我粘贴它粘贴在表的末尾

编辑:我搜索并找到了一种方法,但是现在当我复制单元格时,我得到一个COM异常,消息是“要将Excel工作表中的所有单元格粘贴到当前工作表中,必须粘贴到第一个单元格(A1或R1C1)。”

下面是代码,它是用C编写的#

--更新--

此代码段将Book1的A1:A3单元格复制到Book2。它将在Book2中找到最后使用的单元格,并将数据附加到它下面

Sub CopyRange()

Dim source As Worksheet
Dim destination As Worksheet
Dim emptyRow As Long

Set source = Workbooks("Book1.xlsx").Sheets("Sheet1")
Set destination = Workbooks("Book2.xlsx").Sheets("Sheet1")

'find empty row (actually cell in Column A)'
emptyRow = destination.Cells(destination.Rows.Count, 1).End(xlUp).Row
If emptyRow > 1 Then
    emptyRow = emptyRow + 1
End If

source.Range("A1:A3").Copy destination.Cells(emptyRow, 1)

End Sub
--旧的--

此示例将Book1.xlsx的所有图纸复制到Book2.xlsx:

Workbooks("Book1.xlsx").Worksheets.Copy Before:=Workbooks("Book2.xlsx").Sheets(1)
--更新--

此代码段将Book1的A1:A3单元格复制到Book2。它将在Book2中找到最后使用的单元格,并将数据附加到它下面

Sub CopyRange()

Dim source As Worksheet
Dim destination As Worksheet
Dim emptyRow As Long

Set source = Workbooks("Book1.xlsx").Sheets("Sheet1")
Set destination = Workbooks("Book2.xlsx").Sheets("Sheet1")

'find empty row (actually cell in Column A)'
emptyRow = destination.Cells(destination.Rows.Count, 1).End(xlUp).Row
If emptyRow > 1 Then
    emptyRow = emptyRow + 1
End If

source.Range("A1:A3").Copy destination.Cells(emptyRow, 1)

End Sub
--旧的--

此示例将Book1.xlsx的所有图纸复制到Book2.xlsx:

Workbooks("Book1.xlsx").Worksheets.Copy Before:=Workbooks("Book2.xlsx").Sheets(1)

确实如此。但我想将工作表的内容复制到另一个工作簿中的另一个工作表;)也许您应该将标题澄清为“Excel复制工作表内容”,而不仅仅是工作表;)哎呀。。。在Book2中还没有可用数据的情况下,试图查找空行时出现了一个错误。现在已修复。如果要查找目标工作表中最后使用的单元格,可能需要检查为您执行此操作的内置函数:var lastCell=xlsheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.XlCellType lastCell,Type.Missing);确实如此。但我想将工作表的内容复制到另一个工作簿中的另一个工作表;)也许您应该将标题澄清为“Excel复制工作表内容”,而不仅仅是工作表;)哎呀。。。在Book2中还没有可用数据的情况下,试图查找空行时出现了一个错误。现在已修复。如果要查找目标工作表中最后使用的单元格,可能需要检查为您执行此操作的内置函数:var lastCell=xlsheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.XlCellType lastCell,Type.Missing);工作表的大小是有限的,因此如果复制整个工作表,则没有空间将多个工作表“附加”到单个工作表中。工作表的大小是有限的,因此如果复制整个工作表,则没有空间将多个工作表“附加”到单个工作表中。