Dans Excel VBA (ou si vous pouvez en C#, j'utilise la bibliothèque d'objets Excels à partir de .NET), comment copier une feuille de calcul d'un classeur à une autre feuille dans un autre classeur. Fondamentalement, ce que je fais est de copier chaque feuille dans une feuille de calcul centrale dans un autre classeur et ensuite faire tout ce que j'ai besoin de faire là. J'ai essayé d'utiliser la méthode Range.Copy, j'ai donné le paramètre Destination comme la gamme de l'autre classeur. Cela a fonctionné parfaitement, mais il y a un problème, c'est-à-dire que chaque fois que je le copie, il remplace les anciennes données dans cette feuille de calcul. Comment est-ce que je fais quelque chose comme si que quand je le colle colle à la fin de la feuille.Excel feuille de calcul
EDIT: J'ai cherché et trouvé un moyen, mais maintenant, quand je copie les cellules je reçois une exception COM avec le message « Pour coller toutes les cellules à partir d'une feuille de calcul Excel dans la feuille de calcul, vous devez coller dans le première cellule (A1 ou R1C1). "
Voici le code, il est en 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);
feuilles de travail ont une taille finie, donc si vous copiez des feuilles entières , il n'y a pas de place pour "ajouter" plus d'un à une seule feuille de calcul. – wakingrufus