全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1221
推到 Plurk!
推到 Facebook!

Excel的sheet保護問題!

尚未結案
piggy213
一般會員


發表:16
回覆:6
積分:4
註冊:2002-12-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-11 20:39:31 IP:211.74.xxx.xxx 未訂閱
請教各位前輩: 有辦法做到說... 我只要目前ActiveSheet可以編輯,其他Sheet都不可編輯,即保護狀態! 因為無法知道共有幾個sheet,所以必須這樣做... 有辦法做到這樣嗎? 謝謝
timhuang
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-13 14:01:35 IP:203.95.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-14 22:11:43 IP:211.74.xxx.xxx 未訂閱
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 則不保護, 其餘的全部保護即可, 試試看, 若有問題再問!
系統時間:2024-07-08 14:40:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!