標題:
[發問]
請教關於這段代碼的疑惑?
[打印本頁]
作者:
sunnyso
時間:
2014-3-7 21:38
標題:
請教關於這段代碼的疑惑?
這個sub過程的意思是將sheet4儲存格a1到a500的所有包含2的儲存格替換為儲存格的值為5,我的疑惑主要是在do...while 這個語法塊中,假設找到了第一個包含2的儲存格,那麼就進入do...while 過程 這樣的話 c的值被替換為5 使用set c=.findnext(c)的話 這樣不就變成了找5了嗎?? 而不是找2了??但是為什麼程式執行的結果是正確的??而不是在找到第一個是2的儲存格後,將儲存格的值替換為5,然後再繼續找5呢??麻煩對VBA語法熟悉的指教一下不甚感激!
Sub t1()
Dim c As Range
Dim firstaddress As String
With Worksheets("Sheet4").Range("a1:a500")
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
End Sub
複製代碼
作者:
Hsieh
時間:
2014-3-7 23:33
回復
1#
sunnyso
Range.FindNext 方法
用 Find 方法開始進行尋找後,用本方法繼續該尋找作業。本方法尋找相符合
同一條件
的下儲存格,並傳回代表該儲存格的 Range 物件。本方法不影響選定範圍或目前儲存格。
你可先用功能表中的尋找先輸入一個搜尋
然後關閉尋找對話方塊
然後再重新啟動尋找,看看他的尋找目標是否預設成上一次尋找目標
作者:
sunnyso
時間:
2014-3-7 23:40
感謝提示, 讓我試試
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)