請問WorksheetFunction.Index 的用法

Dim arrALL()

Dim arrFields()

Dim arrValues()

Dim i As Long

Dim r As Long

With Sheet1

r = .Range("a1").End(xlDown).Row

arrALL = .Range("a1:t" & r)

arrFields = WorksheetFunction.Index(arrALL, 1, 0)

For i = 2 To r

arrValues = WorksheetFunction.Index(arrALL, i, 0)

rst.AddNew arrFields, arrValues

Next

End With

請問WorksheetFunction.Index(arrALL, 1, 0) 含數中的 1 與 0各代表什麼意思?

謝謝解答。

2 個解答

評分
  • ?
    Lv 5
    1 0 年前
    最佳解答

    在vba裡用Index(arrALL, 1, 0)會有點不一樣,是傳回一個陣列。

    你用的是ado的使用Index(arrALL, 1, 0)表示第一列整個標題

    ex:標題一,標題二,標題三,標題四

    而For i = 2 To r 是從第二筆到最後一筆新增資料

    WorksheetFunction.Index(arrALL, i, 0)

    是a2值,b2值,c2值,d2值

    ...

    ..

    是ar值,br值,cr值,dr值

    rst.AddNew arrFields, arrValues

    是recordset新增記錄方式,二者都是陣列,相同維數。

    2010-01-16 17:53:31 補充:

    在vba裡用Index(arrALL, 1, 0)會有點不一樣,是傳回一個陣列。

    你用的是ado的使用Index(arrALL, 1, 0)表示第一列整個標題

    ex:標題一,標題二,標題三,標題四

    而For i = 2 To r 是從第二筆到最後一筆新增資料

    WorksheetFunction.Index(arrALL, i, 0)

    是a2值,b2值,c2值,d2值

    ...

    ..

    是ar值,br值,cr值,dr值

    rst.AddNew arrFields, arrValues

    是recordset新增記錄方式,二者都是陣列,相同維數。

    裡面有0是比較例外的情況,其他跟工作表函數類似。

  • 1 0 年前

    是這樣啊

    我刪掉了喔

    請下日大大貼正

還有問題?馬上發問,尋求解答。