線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1309
推到 Plurk!
推到 Facebook!

delphi control Excel , 使用 findnext 時.如何設定範圍為單Row

尚未結案
water
初階會員


發表:90
回覆:89
積分:35
註冊:2003-07-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-11 13:18:47 IP:61.222.xxx.xxx 未訂閱
i  has question to write delphi program to control  EXCEL          1. 如何 搜尋單列         2. 如何 得列最後column_number    ---- water    red_line is error_place procedure Chang_CC_Excel_Barcode(); VAR M_Col,M_Row,M_DD_Row,M_DD_Col : integer ; M_Sheet : integer ; M_Cell_Str : string ; FCell : variant ; FindRow, FindColumn: integer ; FWorkSheet : variant; begin Ms_dir :=GetCurrentDir(); // 取得目前程式位置 Ms_ExcelW3 := 'CC.xls' ; // 轉出資料 Ms_ExcelW4 := 'DD.xls' ; // 轉出資料 Ms_ExcelW3 := Ms_Dir '\' Ms_ExcelW3 ; Ms_ExcelW4 := Ms_Dir '\' Ms_ExcelW4 ; // test setup.xls 設定檔 Ms_ExcelAP3 := CreateOleObject('Excel.Application'); Ms_ExcelWB3 := Ms_ExcelAP3.WorkBooks.OPEN(Ms_ExcelW3); // 舊檔 開啟 Ms_ExcelAP3.Worksheets[1].activate; try Ms_ExcelAP4 := CreateOleObject('Excel.Application'); Ms_ExcelWB4 := Ms_ExcelAP4.WorkBooks.OPEN(Ms_ExcelW4); Ms_ExcelAP4.Worksheets[3].select; // 舊檔 clear sheet1 Ms_ExcelAP4.ActiveSheet.cells.clear; Ms_ExcelAP4.Worksheets[2].select; Ms_ExcelAP4.ActiveSheet.cells.clear; Ms_ExcelAP4.Worksheets[1].select; Ms_ExcelAP4.ActiveSheet.cells.clear; except Ms_ExcelWB4 := Ms_ExcelAP4.WorkBooks.add; // 新檔 重建 Ms_ExcelWB4.SaveAS(Ms_ExcelW4); end; for M_Sheet:=1 to 3 do begin Ms_ExcelAP3.Worksheets[M_Sheet].Activate; //指定工單欄 Ms_ExcelAP4.Worksheets[M_Sheet].Activate; //指定工單欄 FWorkSheet:=Ms_ExcelAP3.WorkSheets[M_Sheet]; M_DD_Row:=1; M_DD_Col:=1; // Ms_ExcelAP4.cells[1,M_DD_Row].value:=M_date; // 存日期 M_DD_Row:=M_DD_Row 1; FCell := Ms_ExcelAP3.cells.Find('BW'); if not VarIsEmpty(FCell) then begin FindRow := FCell.Row; // save Frist_find_cell row repeat FOR M_Col:=1 TO 13 do // 如何修改成自動取得此row 最大 columns_number begin M_Cell_Str := Ms_ExcelAP3.cells[Fcell.Row,M_Col].value; // Cell string Ms_ExcelAP4.cells[M_DD_Row,M_DD_Col].value:=M_Cell_Str; M_DD_Col:=M_DD_Col 1; end; // some people tell me , need use Range[c1,c2] ; but i dont know how to write // FCell := Ms_ExcelAP3.WorkSheets[M_Sheet].cells.Findnext(FCell); // ERROR FCell:= FWorkSheet.cells.Findnext(FCell); // error M_DD_Row:=M_DD_Row 1; until (FindRow = FCell.Row); end; // scan_back check end; Ms_ExcelAP3.ActiveWorkBook.Saved := True; // 不存檔 Ms_ExcelAP3.Application.Quit; // 離開 Ms_ExcelAP4.Worksheets[1].Activate; // 最適欄寬 Ms_ExcelAP4.Worksheets[1].Cells.Select; Ms_ExcelAP4.Selection.Columns.AutoFit; Ms_ExcelAP4.Worksheets[2].activate; // 最適欄寬 Ms_ExcelAP4.Worksheets[2].Cells.Select; Ms_ExcelAP4.Selection.Columns.AutoFit; Ms_ExcelAP4.Worksheets[3].activate; // 最適欄寬 Ms_ExcelAP4.Worksheets[3].Cells.Select; Ms_ExcelAP4.Selection.Columns.AutoFit; Ms_ExcelWB4.Save; Ms_ExcelAP4.Application.Quit; end; 一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-14 20:41:47 IP:61.62.xxx.xxx 未訂閱
請參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41639 一樣的方法, 只是先將 Row 給 select 起來即可! FWorkSheet.Rows[3].Select; //指定 3 列
系統時間:2024-06-24 20:38:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!