2011/07/12

TExcelWorksheet刪除列的方式

真是見鬼的做法,Google半天居然沒有網站可以解決這問題

首先,如果我要把Excel工作表的D欄刪除,在Excel VBA是這樣寫的:

Sub Macro2()
    Columns("D:D").Select
    Selection.Delete Shift:=xlToLeft
End Sub


找找找,怎麼找都是顯示ComObj的處理,沒有人用Delphi內建的元件
剛好我偏偏使用了:

Microsoft Office XP Sample Automation Server Wrapper Components

這套元件組……

沒有第二句話,就是難!

其中試了一些方法:


Worksheet.Columns(9).Delete(xlToLeft);
…別鬧了,編譯過不去的!


ExcelApplication1.ActiveSheet.Columns[1].Delete;
這是 Office 2000 Server 組的用法,Office XP不能使用……Orz
在這邊卡超久的!


Worksheet.Range['I', 'I'].Columns.Delete(xlToLeft);
…出現了「OLE error 800A03EC」控制錯誤的訊息…


總之,真的是見鬼的難!
後來試了很久,總算是找到可以正常使用的函式……

// 本文轉載自愛抱怨本鋪. Eden的雜念溜
WorkSheet.Range['G1','G1'].EntireColumn.Delete(xlToLeft);


呼…終於可以用了…
不過如何使用數字來選取…這個還在摸索中…
暫時也只能先這樣囉~~~~~


為了OO和強型別檢查…一定要這麼委曲就是了…Orz









誰來拉我一把啊~~~~~ > <|||

沒有留言:

張貼留言