返回列表 上一主題 發帖

[發問] 為何無法這樣寫

回復 1# bobomi
應該是要用 :
                              Columns( 3 ).delete
的格式才是正確的.
(我猜它是直接拿 range 的格式來套用才發生這樣的烏龍, Columns 與 Rows 沒有第二個參數, 多列<欄>的表示方式是 ("1:5")  , 括號中間要用字串的形式才會接受)

===== 以下是 Office 2000 的說明  =====
參照列和欄
請參閱特定可用 Rows 屬性或 Columns 屬性處理整列或整欄。這兩個屬性傳回代表儲存格範圍的 Range 物件。以下範例中,用 Rows(1) 傳回工作表 Sheet1 上的第一列,然後將 Font 物件的 Bold 屬性設定為 True。
Sub RowBold()
    Worksheets("Sheet1").Rows(1).Font.Bold = True
End Sub
下列表格表示使用 Rows 屬性和 Columns 屬性的一些列和欄參照。
   參照                           意義
Rows(1)                      第一列
Rows                 工作表上所有的列
Columns(1)               第一欄
Columns("A")           第一欄
Columns            工作表上所有的欄
如果要同時處理若干列或欄,可先建立一個物件變數,然後用 Union 方法把對 Rows 屬性或 Columns 屬性的多個呼叫組合起來。下列範例將使用中活頁簿中第一張工作表上的第一列、第三列和第五列的字型設定為粗體。
Sub SeveralRows()
    Worksheets("Sheet1").Activate
    Dim myUnion As Range
    Set myUnion = Union(Rows(1), Rows(3), Rows(5))
    myUnion.Font.Bold = True
End Sub
===== 以上是 Office 2000 的說明  =====

其實類似的烏龍還有很多,
例如它對  Dictionary  用法的舉例:

下面的程式碼舉例說明了如何建立一個 Dictionary 物件:
Dim d                   '建立一個變數
Set d = CreateObject(Scripting.Dictionary)
d.Add "a", "Athens"     '加入一些關鍵字和項目
d.Add "b", "Belgrade"d.Add "c", "Cairo"
...

到了 Office 2003 還是一樣錯誤的舉例(更後面的版本有沒有修正我就不清楚了).

剛開始還是新手學 Excel VBA 時,
那行 Set d = CreateObject(Scripting.Dictionary)
應該要寫成 Set d = CreateObject("Scripting.Dictionary")
就只是少了兩個雙引號,
足足浪費了我一個小時的時間找問題點.

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題