如何刪除已有資料的Excel Sheet |
缺席
|
mnsf
初階會員 發表:104 回覆:90 積分:48 註冊:2003-11-25 發送簡訊給我 |
//假設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"有刪除成功 |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
您卻定是名稱是同一個嗎?
===================引 用 mnsf 文 章=================== //假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3" //其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的 //以下是程式 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 發送簡訊給我 |
===================引 用 老大仔 文 章=================== 您卻定是名稱是同一個嗎? ===================引 用 mnsf 文 章=================== //假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3" //其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的 //以下是程式 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 發送簡訊給我 |
怎麼那麼神奇?應該是 Sheet3 無法刪除才對。
如果您是用索引來刪除,必須倒過刪除,從最後的開始刪,先刪 Sheet3, 再刪 Sheet2,因為先刪索引 2,索引 3 會變索引 2,索引 3 已經不存在了。 ===================引 用 mnsf 文 章=================== ===================引 用 老大仔 文 章=================== 您卻定是名稱是同一個嗎? ===================引 用 mnsf 文 章=================== //假設c:\1.xls共有三個sheet,"Sheet1","Sheet2","Sheet3" //其中 "Sheet2"的Cell(1,1)='aaaaa',而"Sheet1","Sheet3"完全是空白的 //以下是程式 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 發送簡訊給我 |
//不好意思,是我表達的不夠清楚
//應該要這麼說, //假設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, 註解 無‧
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
你的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 發送簡訊給我 |
//這麼說好了
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 發送簡訊給我 |
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"有刪除成功 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |