在线 求解 (50分)

  • 主题发起人 主题发起人 逻辑鱼
  • 开始时间 开始时间

逻辑鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
刚刚写了一个函数想把已经画好的Excel表格里的数据 取出来 计算一下合计
代码 和 报出的错误如下
function TDmXzGbBanHz.ExcelSum(x, y: Integer;
a, b: String): Real;
var
I: Integer;
ExcelSum: Real;
ExcelItem: String;
begin
//a,b分别定义Excel中的具体坐标
ExcelItem := ExcelWorksheet1.Cells.Item[a,b];
//这里报的错误
if ExcelItem ='' then
ExcelItem := FloatToStr(0);
for I := x to ydo
ExcelSum := ExcelSum + StrToFloat(ExcelItem);
result := ExcelSum;
end;

错误: 提示 OLE error 800A03EC
 
补充一下 我是在这里调用 的上面的函数
function TDmXzGbBanHz.ToAvg(x,y : Integer): Real;
var
I: Integer;
ExcelAvg,ExcelAvg1,ExcelAvg2,ExcelSum3,ExcelSum1,ExcelSum2 : Real;
ExcelItem: String;
begin
ExcelSum1 := 0;
ExcelSum2 := 0;
ExcelSum3 := 0;
ExcelSum3 := ExcelSum(x, y, IntToStr(5), IntToStr(I+2));
//
ExcelAvg1 := StrToFloat(ExcelWorksheet1.Cells.Item[6,5]);
ExcelSum1 := ExcelSum(x, y, IntToStr(6), IntToStr(I+2));
//
ExcelAvg2 := ExcelWorksheet1.Cells.Item[7,5];

ExcelSum2 := ExcelSum(x, y, IntToStr(6), IntToStr(I+2));

//
ExcelAvg := (Round(100*(ExcelSum1 * ExcelAvg1 + ExcelSum2 * ExcelAvg2)/ExcelSum3))/100;
//
Result := ExcelAvg;
end;
 
主要是为了算计算合计中的 平均年龄
 
你直接用ADO连这个子excel不行吗???
 
To jianguo_bu:

是这样的,我实际上已经从数据库中把相应的数据取出来,并且写到EXCEL中,
但是第一行合计我是通过函数进行累加的,就是把下面的数据按行累加后,再写
到第一行,但是其中有一项平均年龄,不能用累加的方法,所以写了一个函数单独
计算一下
 
大家要是有别的好方法也行
主要目的
就是如下 EXCEL中已知的都标出来了 求合计的 平均年龄
A B C
平均年龄 18岁-30岁 31岁-50岁
1合计 3人 5人
2初级 34 1人 3人
3高级 25 2人 2人
 
你的原始表格是怎样的呀???看不懂你这个表格.
是不是要得到这样结果呀?
A B C
平均年龄 28 30.4
1合计 3人 5人
2初级 34 1人 3人
3高级 25 2人 2人
 
A B C
平均年龄 18岁-30岁 31岁-50岁
1合计 X 3人 5人
2初级 34 1人 3人
3高级 25 2人 2人
求图中的 X的值
注: 表内关系 2+3=1
 
jianguo_bu
和 jianguobu 是一个人吧
 
不是一个人呀
 
后退
顶部