如何在Word裏的表格一次選取多列? |
尚未結案
|
cgsn
一般會員 發表:7 回覆:3 積分:2 註冊:2004-02-16 發送簡訊給我 |
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; WordApp:Variant; NewDoc:Variant; NewTable:Variant; Range:Variant; implementation uses comobj; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,j,s:Integer; begin WordApp :=CreateOleObject('word.application'); WordApp.visible :=True; NewDoc :=WordApp.Documents.add; Range :=WordApp.Selection.Range; NewTable :=NewDoc.tables.Add(range,9,9); for i:=1 to 9 do for j:=1 to 9 do begin s:=i*j; NewTable.cell(i,j).Range.Text:=IntToStr(i) '*' IntToStr(j) '=' IntToStr(s); end; end; //第一種:欄位選取合併方式 procedure TForm1.Button2Click(Sender: TObject); begin NewTable.Cell(1, 1).Merge (NewTable.Cell(1, 9)); end; end. //--------------------------------------------------------- //第二種:列選取合併方式 procedure TForm1.Button2Click(Sender: TObject); var QRow :Variant; begin //選擇第一列 QRow:=NewTable.Rows.Item(1); //執行合併 QRow.Cells.Merge; end;網海無涯,唯學是岸! 發表人 - qoo1234 於 2004/08/31 20:58:34 |
cgsn
一般會員 發表:7 回覆:3 積分:2 註冊:2004-02-16 發送簡訊給我 |
|
cgsn
一般會員 發表:7 回覆:3 積分:2 註冊:2004-02-16 發送簡訊給我 |
貼上程式碼: if WordApplication1.ActiveDocument.Tables.Item(1).Rows.Count > 1 then begin
While WordApplication1.ActiveDocument.Tables.Item(1).Rows.Count > 1 do begin
WordApplication1.ActiveDocument.Tables.Item(1).Cell(WordApplication1.ActiveDocument.Tables.Item(1).Rows.Count,1).Select;
WordApplication1.Selection.Rows.Delete;
end;
end;
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
要選取一個範圍可以如下 :
function SelectTableRange(t:Table; r1,c1,r2,c2:integer):Range; var x1,x2:olevariant; begin x1:=t.cell(r1,c1).Range.Start; x2:=t.cell(r2,c2).Range.end_; Result:=ActiveDocument.Range(x1,x2); end;若要選取連續的row也可以先選一row後用MoveEnd或MoveStart 如果Visible=True也可以 var vUnit,Extend:Olevariant; begin vUnit:=wdLine; Extend:=wdExtend; table.cell(1,1).select; selection.MoveDown( Vunit, I, Extend ); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |