Excel的sheet保護問題! |
尚未結案
|
piggy213
一般會員 發表:16 回覆:6 積分:4 註冊:2002-12-27 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 之前的這篇應該是可以達到你要的功能:
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29580 稍改一下即可:
procedure TForm1.Button1Click(Sender: TObject); var ex, wb, ws: variant; i: integer; begin ex := CreateOleObject('Excel.Application'); wb := ex.WorkBooks.Open('c:\file.xls'); ex.visible := true; for i := 1 to wb.Sheets.Count do if wb.Sheets[i].Name <> wb.ActiveSheet.Name then wb.Sheets[i].Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True); end;配合 wb.Sheets.Count 取出所有的 WorkSheets 數目, 再利用 wb.ActiveSheet 來進行現在使用中的 WorkSheet 名稱和所有名稱來進行比對, 若是現行 WorkSheet 則不保護, 其餘的全部保護即可, 試試看, 若有問題再問! |
piggy213
一般會員 發表:16 回覆:6 積分:4 註冊:2002-12-27 發送簡訊給我 |
Hi,TimHuang,謝謝你! 照你的方法是出來了~ 幫我解答過這麼多問題..^.^... Thank you very much!
引言: Hi, 之前的這篇應該是可以達到你要的功能: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29580 稍改一下即可:procedure TForm1.Button1Click(Sender: TObject); var ex, wb, ws: variant; i: integer; begin ex := CreateOleObject('Excel.Application'); wb := ex.WorkBooks.Open('c:\file.xls'); ex.visible := true; for i := 1 to wb.Sheets.Count do if wb.Sheets[i].Name <> wb.ActiveSheet.Name then wb.Sheets[i].Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True); end;配合 wb.Sheets.Count 取出所有的 WorkSheets 數目, 再利用 wb.ActiveSheet 來進行現在使用中的 WorkSheet 名稱和所有名稱來進行比對, 若是現行 WorkSheet 則不保護, 其餘的全部保護即可, 試試看, 若有問題再問! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |