返回列表 上一主題 發帖

[發問] (已解決)統計顏色次數

回復 4# GBKEE
  1.     Set Rng = Range("B2:I" & [A2].End(xlDown).Row)
  2.     For Each R In Rng.Rows
  3.         Set Rng = R.Cells(1)
複製代碼
您為何不寫成?
  1.     Set Rng = Range("B2:I" & [A2].End(xlDown).Row)
  2.     For Each R In Rng.Rows
  3.         Set X = R.Cells(1)
複製代碼

TOP

回復 21# c_c_lai
Set X = R.Cells(1) 在程序中是會表達明確些 , 不修改它在這程序中一樣達到效果,
程式中也 Dim  X As Range 應因是一時忘記用它吧!
謝謝你的提醒,糾正.

TOP

回復 22# GBKEE
我的本意是:

請您別介意,莫說糾正一詞了!

TOP

回復 23# c_c_lai
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Integer, i As Integer, x As Integer
  4.     Rng = 10
  5.     i = 0
  6.     For x = 1 To Rng   '這裡迴圈最終值已設定=10 不受以後的影響
  7.         Debug.Print x  '請在即時視窗看 x 的變動
  8.         i = i + 1
  9.         Rng = i + 5    'Rng變數不影響迴圈最終值
  10.         x = Rng        '這 X變數才會影響迴圈的次數
  11.     Next
  12.     MsgBox "迴圈迴結束後 X= " & x
  13. End Sub
複製代碼

TOP

回復 24# GBKEE
您誤解我的意思,我的重點僅在於 Rng 變數的使用。

假設:For X = 1 To Rng ~ Next X 之內容非常複雜
1.  如果在 For Next Loop 內 Coding 時一時疏忽,同時引用了 Rng 變數並將其
      值改變;
2.  之後, 在 For Next Loop 後段處理時,亦同樣引用了 Rng 變數值,
      此處是希望引用原先的 Rng 變數值時,他忽略了在 For Next Loop 內
      已異動了 Rng 變數值,結果執行發生了不可預期的錯誤。
3.  這種情事常易發生在當模組龐大,處理內容複雜時的不經意處理。

而非您程式的解譯, 請您見諒。

TOP

回復 25# c_c_lai
看圖解文:  一直不明暸你的真正意思
3.  這種情事常易發生在當模組龐大,處理內容複雜時的不經意處理。
是啊! 所以須要仔細反覆的檢查程式碼 ,執行後的正確性

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題