返回列表 上一主題 發帖

(陣列問題)將某一直欄存至陣列中並取出某陣列值所在的列數

(陣列問題)將某一直欄存至陣列中並取出某陣列值所在的列數

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

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

20161007-問題-取出陣列值的列數.zip (13.17 KB)
  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去顯示陣列的值,可以正常顯示,
但是想要顯示該陣列值的所在列數,
就會提示錯誤:
此處需要物件,

希望前輩可以不吝指點迷津,十分感謝.

回復 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
複製代碼
PKKO

TOP

回復 2# PKKO


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

再次感謝.

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題