Excel Arbeitsblatt kopieren

In Excel VBA (oder wenn Sie in C # könnten, verwende ich die Excels Object Library von .NET), wie Sie ein Arbeitsblatt von einer Arbeitsmappe in eine andere Arbeitsmappe kopieren. Grundsätzlich kopiere ich jedes meiner Arbeitsblätter in ein zentrales Arbeitsblatt in einer anderen Arbeitsmappe und werde dann alles tun, was ich dort tun muss. Ich habe versucht, die Range.Copy-Methode zu verwenden, und den Destination-Parameter als Bereich der anderen Arbeitsmappe angegeben. Es hat perfekt funktioniert, aber es gibt ein Problem: Jedes Mal, wenn ich es kopiere, werden die älteren Daten in diesem Arbeitsblatt ersetzt. Wie mache ich so etwas, wenn ich es am Ende des Blattes einfügen.

BEARBEITEN: Ich habe einen Weg gesucht und gefunden, aber jetzt, wenn ich die Zellen kopiere, erhalte ich eine COM-Ausnahme mit der Nachricht"Um alle Zellen aus einem Excel-Arbeitsblatt in das aktuelle Arbeitsblatt einzufügen, müssen Sie sie in die erste Zelle (A1 oder R1C1) einfügen."

Es folgt der Code in C #

logWorksheet = logWorkbook.ActiveSheet as Excel.Worksheet;

Excel.Range tempRange = logWorksheet.Cells[logWorksheet.Rows.Count, "A"] as Excel.Range;
tempRange = tempRange.get_End(Excel.XlDirection.xlUp);

int emptyRow;

if (tempRange.Row > 1)
    emptyRow = tempRange.Row + 1;
else
    emptyRow = tempRange.Row;

string copyLocationAddress = Convert.ToString(emptyRow);

Excel.Range copyLocation = logWorksheet.get_Range(
                            "A" + copyLocationAddress, Type.Missing) as Excel.Range;

// copy whole workbook to the central workbook
tempLogSheet.Cells.Copy(copyLocation);

Antworten auf die Frage(1)

Ihre Antwort auf die Frage