返回列表 上一主題 發帖

[發問] 請教關於這段代碼的疑惑?

[發問] 請教關於這段代碼的疑惑?

這個sub過程的意思是將sheet4儲存格a1到a500的所有包含2的儲存格替換為儲存格的值為5,我的疑惑主要是在do...while 這個語法塊中,假設找到了第一個包含2的儲存格,那麼就進入do...while 過程 這樣的話 c的值被替換為5 使用set c=.findnext(c)的話 這樣不就變成了找5了嗎?? 而不是找2了??但是為什麼程式執行的結果是正確的??而不是在找到第一個是2的儲存格後,將儲存格的值替換為5,然後再繼續找5呢??麻煩對VBA語法熟悉的指教一下不甚感激!
  1. Sub t1()
  2.   Dim c As Range
  3.   Dim firstaddress As String
  4. With Worksheets("Sheet4").Range("a1:a500")
  5.     Set c = .Find(2, LookIn:=xlValues)
  6.     If Not c Is Nothing Then
  7.         firstaddress = c.Address
  8.         Do
  9.             c.Value = 5
  10.             Set c = .FindNext(c)
  11.         Loop While Not c Is Nothing And c.Address <> firstaddress
  12.     End If
  13. End With
  14. End Sub
複製代碼
ss

感謝提示, 讓我試試
ss

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題