Board logo

標題: (陣列問題)將某一直欄存至陣列中並取出某陣列值所在的列數 [打印本頁]

作者: greetingsfromtw    時間: 2016-10-7 12:44     標題: (陣列問題)將某一直欄存至陣列中並取出某陣列值所在的列數

本帖最後由 greetingsfromtw 於 2016-10-7 12:45 編輯

各位前輩好,
小弟初學陣列,有個問題想請教,
附檔及程式碼如下:

[attach]25472[/attach]
  1. Sub arrayTest()

  2. Dim ar

  3. Range("a2").Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1).Select
  4. Selection.Resize(Selection.Rows.Count - 1, 1).Select


  5. ar = Selection

  6. MsgBox ar(3, 1)

  7. ar(3, 1).Select

  8. End Sub
複製代碼
假設今天有一欄位,此例為A欄,
想把該欄位(從A2開始)的非空白儲存格存進陣列中,
並取出該陣列值的所在列數,

不知是否可行?

小弟試著用msgbox去顯示陣列的值,可以正常顯示,
但是想要顯示該陣列值的所在列數,
就會提示錯誤:
此處需要物件,

希望前輩可以不吝指點迷津,十分感謝.
作者: PKKO    時間: 2016-10-7 15:35

回復 1# greetingsfromtw

基本上陣列是不能被選取的
只有物件才能被選取(活頁簿、分頁、儲存格等等)
下面是簡單範例,可自行運用
  1. Sub arrayTest()

  2. Dim ar

  3. ar = Range("a1").Resize(Cells(Rows.Count, 1).End(xlUp).Row, 2)
  4. For i = 2 To UBound(ar)
  5.     If ar(i, 1) <> "" Then
  6.         ar(i, 2) = i
  7.     End If
  8. Next

  9. [a1].Resize(UBound(ar), 2).Value = ar
  10. '若要選取,請自行應用
  11. MsgBox ar(2, 2)
  12. Cells(ar(2, 2), 1).Select
  13. End Sub
複製代碼

作者: greetingsfromtw    時間: 2016-10-7 17:52

回復 2# PKKO


很謝謝PKKO大熱心提供的程式碼,
確實這樣就可以選取了,
我再研究一下.

再次感謝.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)