Translate

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









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

沒有留言:

張貼留言

Why I Choose Delphi! (CHT)

扣除使用 C++ Builder 的時間,我實際使用 Delphi 的時間點是 2012 年,它帶我看到了不一樣的世界,見識到世界各地的高手使用 Delphi 創造出他們引以為豪的產品,並且無私的分享他們的學習知識,使我的技術能力得以跟隨他們的能力提升。 最最讓我喜歡的...