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

如何刪除已有資料的Excel Sheet

缺席
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-06-30 14:03:11 IP:61.30.xxx.xxx 訂閱
  //假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//以下是程式
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.WorkSheets[3].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//"Sheet2"沒有刪除成功,Why?
//"Sheet3"有刪除成功
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-06-30 15:38:13 IP:59.120.xxx.xxx 未訂閱
您卻定是名稱是同一個嗎?

===================引 用 mnsf 文 章===================
//假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//以下是程式
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.WorkSheets[3].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//"Sheet2"沒有刪除成功,Why?
//"Sheet3"有刪除成功
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-06-30 16:02:42 IP:61.30.xxx.xxx 訂閱

===================引 用 老大仔 文 章===================
您卻定是名稱是同一個嗎?

===================引 用 mnsf 文 章===================
//假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//以下是程式
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.WorkSheets[3].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//"Sheet2"沒有刪除成功,Why?
//"Sheet3"有刪除成功


不好意思,是我打錯字了!!我確認我打的是相同的變數名稱
但是"Sheet2"就是不能刪除
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-07-01 09:00:05 IP:220.128.xxx.xxx 未訂閱
怎麼那麼神奇?應該是 Sheet3 無法刪除才對。
如果您是用索引來刪除,必須倒過刪除,從最後的開始刪,先刪 Sheet3, 再刪 Sheet2,因為先刪索引 2,索引 3 會變索引 2,索引 3 已經不存在了。
===================引 用 mnsf 文 章===================

===================引 用 老大仔 文 章===================
您卻定是名稱是同一個嗎?

===================引 用 mnsf 文 章===================
//假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//以下是程式
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.WorkSheets[3].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//"Sheet2"沒有刪除成功,Why?
//"Sheet3"有刪除成功


不好意思,是我打錯字了!!我確認我打的是相同的變數名稱
但是"Sheet2"就是不能刪除
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-07-01 10:40:05 IP:61.30.xxx.xxx 訂閱
   //不好意思,是我表達的不夠清楚
//應該要這麼說,
//假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//第一次的程式是--刪除"Sheet3"
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[3].Select;
FMSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//結果"Sheet3"有被刪除

//第二次的程式是刪除"Sheet2"
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
FMSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//結果"Sheet2"沒有被刪除

//而"Sheet2"與"Sheet3"就差在一個有data,一個沒有data
//而我感覺有data的那個"sheet2"是沒有辦法刪除的
//假設不用程式控制,直接開啟一個空白的Excel file
//Step1:直接點選"Sheet3",按右鍵刪除,該Sheet就會直接被刪除
//Step2:再點到"Sheet2",然後隨便在一個Cell上輸入一些字串
//Step3:然後按右鍵刪除"Sheet2"時,Excel就會跑出"資料可能存在你選定的工作表中,若要永久刪除此資料,請按[刪除]?"的詢問
//不知道要怎樣才可以強制刪除有資料的Sheet?
編輯記錄
mnsf 重新編輯於 2011-06-30 20:40:50, 註解 無‧
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-07-01 11:26:47 IP:59.120.xxx.xxx 未訂閱
你的c:\1.xls中的Sheet由左至右的順序是什麼???

你的以下程式碼是合在一起寫的嗎???
你刪完後怎麼還重新開一次excel???

===================引 用 mnsf 文 章===================
//不好意思,是我表達的不夠清楚
//應該要這麼說,
//假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//第一次的程式是--刪除"Sheet3"
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[3].Select;
FMSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//結果"Sheet3"有被刪除

//第二次的程式是刪除"Sheet2"
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
FMSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//結果"Sheet2"沒有被刪除

//而"Sheet2"與"Sheet3"就差在一個有data,一個沒有data
//而我感覺有data的那個"sheet2"是沒有辦法刪除的
//假設不用程式控制,直接開啟一個空白的Excel file
//Step1:直接點選"Sheet3",按右鍵刪除,該Sheet就會直接被刪除
//Step2:再點到"Sheet2",然後隨便在一個Cell上輸入一些字串
//Step3:然後按右鍵刪除"Sheet2"時,Excel就會跑出"資料可能存在你選定的工作表中,若要永久刪除此資料,請按[刪除]?"的詢問
//不知道要怎樣才可以強制刪除有資料的Sheet?
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-07-01 17:42:45 IP:61.30.xxx.xxx 訂閱
   //這麼說好了
procedure TForm1.Button1Click(Sender: TObject);
var FMsExcel,WorkSheet1,WorkSheet2,WorkSheet3,WorkSheet4,WorkSheet5,WorkSheet6:variant ;
begin
//假設c:\1.xls共有三個sheet由左至右分別是:"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//刪除"Sheet3"
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[3].Select;
FMSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//結果"Sheet3"有被刪除
end;
procedure TForm1.Button2Click(Sender: TObject);
var FMsExcel,WorkSheet1,WorkSheet2,WorkSheet3,WorkSheet4,WorkSheet5,WorkSheet6:variant ;
begin
//假設c:\2.xls共有三個sheet由左至右分別是:"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//刪除"Sheet2"
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\2.xls');
FMSExcel.WorkSheets[2].Select;
FMSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//結果"Sheet2"沒有被刪除
end;

//而"Sheet2"與"Sheet3"就差在一個有data,一個沒有data
//而我感覺有data的那個"sheet2"是沒有辦法刪除的
//不知道要怎樣才可以強制刪除有資料的Sheet?
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-07-16 14:40:33 IP:114.32.xxx.xxx 訂閱
   FMsExcel := CreateOleObject('Excel.Application');
FMsExcel.DisplayAlerts := False;
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[3].Delete;
FMSExcel.WorkSheets[2].Delete;
FMSExcel.Application.visible := True ;

===================引 用 mnsf 文 章===================
//假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3"
//其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的
//以下是程式
FMsExcel := CreateOleObject('Excel.Application');
FmsExcel.Application.workbooks.open('C:\1.xls');
FMSExcel.WorkSheets[2].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.WorkSheets[3].Select;
MSExcel.ActiveWindow.SelectedSheets.Delete;
FMSExcel.Application.visible := True ;
//"Sheet2"沒有刪除成功,Why?
//"Sheet3"有刪除成功
系統時間:2017-10-19 20:52:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!