返回列表 上一主題 發帖

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

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

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

小的目前sheet中有A行300列當作一個一維array
請問大大,如圖
question.JPG
2012-6-14 12:46
若有一數值為1時,則如何抓取其cell位址
謝謝大大。

問題示意圖

question.JPG

回復 1# m09903020
  1. Sub xx()
  2.   Set Rng = Range("A1:A" & [A1].End(xlDown).Row)
  3.   Set ADDX = Rng.Find(1, , , xlWhole)
  4.   MsgBox ADDX.Address
  5. End Sub
複製代碼

TOP

本帖最後由 GBKEE 於 2012-6-14 13:30 編輯

回復 1# m09903020
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar()
  4.     With Range("A1:A300")
  5.         Ar = .Value
  6.         .Replace "1", "=1/0", xlWhole
  7.         .SpecialCells(xlCellTypeFormulas, xlErrors).Name = "XX"
  8.         .Value = Ar
  9.          MsgBox [XX].Address
  10.     End With
  11. End Sub
複製代碼

TOP

慚愧慚愧,  我不是很了解接下來這個訊息代表什麼

TOP

回復 4# m09903020

請上傳excel壓縮檔
vba之撰寫需考慮工作表及儲存格之使用情形

TOP

回復 5# register313

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

問題.rar (34.69 KB)

TOP

我測試正常的,也許你把代碼放錯位置了。
2012-06-14_164646.png
2012-6-14 16:47

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

回復 3# GBKEE


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

TOP

回復 7# oobird


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

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題