搞了半天,不知如何写。
为何用ExcelApp.ActiveSheet.Used.Range.Copy; 提示‘method’used not supported by automation object .
5 个解决方案
#1
问题已解决,看来主要还是自己想,网上一大堆贴,都是你抄我的,我抄的,抄来抄去,有的自己都根本没有用过,更谈不上测试就直接把别人的贴子贴上的。
#2
呵呵,这么多内容,谁能一个一个测试。
你的应该是改成ExcelApp.ActiveSheet.UsedRange.Copy解决的吧?
你的应该是改成ExcelApp.ActiveSheet.UsedRange.Copy解决的吧?
#3
楼上的答不正确。
#4
是啊,很多人都是熟练使用搜索引擎,一般都是直接把楼主的问题复制到google或baidu,然后再把找到的近似答案的链接复制过来就回复了。根本不管是否适合楼主的问题,也根本不管帖子的代码是否正确。
uses ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var
v, vSheet: Variant;
begin
v := CreateOleObject('Excel.Application');
v.Visible := true;
v.Workbooks.Open('C:\ccrun\123.xls');
// 复制第一个Sheet
vSheet := v.ActiveWorkbook.Sheets[1];
// 把Sheet1复制到第二个Sheet的后面
vSheet.Copy(EmptyParam, v.ActiveWorkbook.Sheets[2]);
// 再把Sheet1复制到第二个Sheet的前面
vSheet.Copy(v.ActiveWorkbook.Sheets[2]);
// 后结代码略
// ...
//
end;
#5
补充一下:在有些环境中,在复制前需要多加一句vSheet.Select;
另外,我在楼上说的情况,是指C++Builder版块,当然D版也有一些。
另外,我在楼上说的情况,是指C++Builder版块,当然D版也有一些。
#1
问题已解决,看来主要还是自己想,网上一大堆贴,都是你抄我的,我抄的,抄来抄去,有的自己都根本没有用过,更谈不上测试就直接把别人的贴子贴上的。
#2
呵呵,这么多内容,谁能一个一个测试。
你的应该是改成ExcelApp.ActiveSheet.UsedRange.Copy解决的吧?
你的应该是改成ExcelApp.ActiveSheet.UsedRange.Copy解决的吧?
#3
楼上的答不正确。
#4
是啊,很多人都是熟练使用搜索引擎,一般都是直接把楼主的问题复制到google或baidu,然后再把找到的近似答案的链接复制过来就回复了。根本不管是否适合楼主的问题,也根本不管帖子的代码是否正确。
uses ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var
v, vSheet: Variant;
begin
v := CreateOleObject('Excel.Application');
v.Visible := true;
v.Workbooks.Open('C:\ccrun\123.xls');
// 复制第一个Sheet
vSheet := v.ActiveWorkbook.Sheets[1];
// 把Sheet1复制到第二个Sheet的后面
vSheet.Copy(EmptyParam, v.ActiveWorkbook.Sheets[2]);
// 再把Sheet1复制到第二个Sheet的前面
vSheet.Copy(v.ActiveWorkbook.Sheets[2]);
// 后结代码略
// ...
//
end;
#5
补充一下:在有些环境中,在复制前需要多加一句vSheet.Select;
另外,我在楼上说的情况,是指C++Builder版块,当然D版也有一些。
另外,我在楼上说的情况,是指C++Builder版块,当然D版也有一些。