我有几张表的.xls文件。我有几张表的.xlsm文件。我想将xls.sheet(x)复制到xlsm.sheet(y)中。我尝试了以下代码:
try
XLTo := CreateOleObject('Excel.Application');
XLFrom := CreateOleObject('Excel.Application');
except
ShowMessage('Excel might not be installed');
exit;
end;
XLFrom.Workbooks.Open(filename1,1);
XLTo.Workbooks.Open(filename2,1);
SheetFrom := XLFrom.WorkSheets['Sheet Caption'];
SheetTo := XLScreener.WorkSheets['Sheet Caption'];
SheetFrom.Select;
SheetTo.Select;
直到这里,一切看起来还不错,现在我需要将SheetFrom复制到SheetTo中,但我对如何做到这一点很困惑。我试过了:
SheetScreener.Copy(SheetDF);
但我收到错误"工作表类的复制方法失败"。 SheetTo(xlsm)是一个常规工作表,其中包含我想要使用SheetFrom数据覆盖的数据。
我错过了什么?
我读了互联网并看到了几种方法,但我不知道我是否因为它的.xlsm而失败,或者因为我做错了什么。此外,我读到它必须使用相同的Excel应用程序,但我从两个不同的文件复制,所以我不知道该怎么做。
答案 0 :(得分:1)
复制工作表时,会在目标工作簿中创建新工作表。我想你实际上想要覆盖现有表格的内容。在这种情况下,请执行以下操作:
Range
对象。 Range
对象。只需指定左上角的单元格就足够了。 Source.Copy(Dest)
执行复制。 答案 1 :(得分:0)
要复制工作表并将其作为最后一页插入,请尝试
SheetFrom.Copy(XLTo.Sheets(XLTo.Sheets.Count))
然后你可以删除原始的SheetTo - 如果这对你有用
编辑:更正了delphi的语法