请大侠指点:如何使用Excel遍历Excel中得分页符(200分)

  • 主题发起人 主题发起人 zhang7808
  • 开始时间 开始时间
Z

zhang7808

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]我在使用函数breakcount:= excelworksheet1.HPageBreaks.count;时能取得水平分页符
的个数,但用循环 for i:=1 to breakcount do
excelworksheet1.hpagebreaks.Item.Location.row;
却出现来自ole系统提示--‘索引错误’请大侠指点。
 
思考中、、、
 
好像没有问题啊.
// 打开文件
procedure TForm1.Button7Click(Sender: TObject);
begin
xlApp.Connect;
xlBook.ConnectTo(xlApp.Workbooks.Open('E:/book1.xls',NULL,false,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0));
xlSheet.ConnectTo(xlBook.Sheets[1] as _WorkSheet);
xlApp.Visible[0] := True;
end;

// 获得分页符信息
procedure TForm1.Button9Click(Sender: TObject);
var
Hpb,Vpb : integer;
i,j : integer;
begin
Hpb := xlSheet.HPageBreaks.Count;
Vpb := xlSheet.VPageBreaks.Count;

listbox1.Items.Clear;
listbox1.Items.Add('HPageBreaks='+inttostr(Hpb));
listbox1.Items.Add('VPageBreaks='+inttostr(vpb));

for i := 1 to Hpb do
begin
j := xlSheet.HPageBreaks.Item.Location.Row;
listbox1.Items.Add('vrow='+inttostr(j));
end;
end;
 
索引错误一般是你的索引超出范围,看看你的i
 
先谢谢大家帮忙了,bluerain大侠的方法我试过了,还是报错。并且我发现如果通过
excelapplication.pagesetup.printarea设置打印范围之后,再通过
xlSheet.HPageBreaks.Count统计个数会改变,我想是不是分页符分为打印全屏两种
因为我看到excel 帮助中hpagebreak.extent 有
xlPageBreakFull 或 xlPageBreakPartial两种属性。
我想i不会超出范围。
 
在编辑状态下插入分页符,如果该行没有东西,Excel讲忽略该分页符.
先试着在有东西的地方进行分页,看看代码对不对.
 
我的测试文件是又内容的。
 
搞不懂了,能不能把测试文件给我寄一份.
snap_sun@263.net
 
我的office版本是2000,我试着手工写一excel文件是可以遍历,我想可能是生成文件
过程中出了差错,是否有可能是以下地方造成出现‘只读’问题。我使用到的vba有:
1、连接excel
ea1.Connect;
ea1.SheetsInNewWorkbook[0]:=1;
excelworkbook1.connectto(ea1.Workbooks.Add(emptyparam,0));
Excelworksheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item[1] as _WorkSheet);
Excelworksheet1.Activate;
sheet:=ea1.activeworkbook.activesheet;
2、在程序中使用了sheet (variant)代替Excelworksheet(Texcelworksheet)
range (variant):
sheet.pagesetup.PaperSize:= xlPapera3;
sheet.PageSetup.Orientation := xlLandscape;
Sheet.PageSetup.CenterHorizontally:=True;
range:=sheet.range['a1:'+chr(97+columncount-1)+'1'];
3、保存文件时,并没有设置只读属性:
excelworkbook.SaveAs(SaveDialog.FileName,emptyparam,emptyparam,emptyparam,false,false,xlNoChange,emptyparam,false,emptyparam,emptyparam,0);
 
经过本人测试,包括手工录入的文件只要设置了页面属性,或是合并了单元格,甚至改变
默认字体大小,都将报出索引错误。也不知道微软编写的机理,希望各位一同探讨,再次感谢
各位的帮助。
 
我的问题已经解决了,谢谢各位帮助。bluerain在VBA方面可谓造诣很深呀,
我发现作报表调用Excel是一个不错的选择,希望多加指教。我的大富翁名改为
lonesashimi,希望交个网友
 
后退
顶部