返回列表 上一主題 發帖

如何抓取cell中已知某值的位址?

如何抓取cell中已知某值的位址?

本帖最後由 m09903020 於 2012-6-14 12:47 編輯

小的目前sheet中有A行300列當作一個一維array
請問大大,如圖 若有一數值為1時,則如何抓取其cell位址
謝謝大大。

question.JPG (24.48 KB)

問題示意圖

question.JPG

回復 13# register313

感謝  我正在用這個邏輯try一下

TOP

回復 12# m09903020

Set C = R.Find(1, , , xlWhole)     '設定內容為1的儲存格物件為C
If Not C Is Nothing Then s = s + 1: Arr(s, 1) = C.Address(0, 0)    '每找到C則將C的相對位址放進陣列
  
s = s + 1   's依序加1
(1) s=1, Arr(1, 1) = 第1個內容為1的儲存格相對位址
(2) s=2, Arr(2, 1) = 第2個內容為1的儲存格相對位址
(2) s=3, Arr(3, 1) = 第3個內容為1的儲存格相對位址

TOP

回復 8# register313

    r大可以再請教這句  
    s = s + 1: Arr(s, 1) = c.Address(0, 0)
   語意和邏輯嗎? 謝謝

TOP

回復 8# register313


    感謝register313大大,兩次協助幫忙,我比較鈍還是不會用for each 內的變數 但整個東西可以做連結運用了(跪拜!)

TOP

回復 7# oobird


    謝謝oo大大 ,  剛剛再試了一次 xx() 確實可用,你po文之前不行我也不是很為什麼"沒宣告"或者沒用with

TOP

回復 3# GBKEE


    謝謝G大, G大的程式函數很精簡,我查了很久才看懂。不過我放棄使用了:)

TOP

回復 6# m09903020

位址放在 陣列Arr 及M欄
  1. Sub yy()
  2.   Dim Arr(1 To 300, 1 To 1)
  3.   For Each R In Sheets("asile_table").[A1:A300]
  4.       Set C = R.Find(1, , , xlWhole)
  5.       If Not C Is Nothing Then s = s + 1: Arr(s, 1) = C.Address(0, 0)
  6.   Next
  7.   Sheets("asile_table").[M1].Resize(s, 1) = Arr
  8. End Sub
複製代碼

TOP

我測試正常的,也許你把代碼放錯位置了。

TOP

回復 5# register313

不好意思 檔案只留 問題部分 若還是不足先說聲抱歉,再補上

問題.rar (34.69 KB)

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題