Board logo

標題: [發問] 可正常顯示執行結果,可是會出現偵錯 [打印本頁]

作者: jesscc    時間: 2011-4-18 23:43     標題: 可正常顯示執行結果,可是會出現偵錯

本帖最後由 jesscc 於 2011-4-18 23:44 編輯
  1. Sub NewShBtn_Click()
  2. If OptionButton1 = True Then
  3. Dim i As Integer, rng As Range, y As WorksheetFunction
  4. Set y = WorksheetFunction
  5. Range("B3:E8000").Font.ColorIndex = 0
  6. For i = 2 To 5
  7. Set rng = Cells(3, i).Resize(8000)
  8. Cells(rng.Find(y.Max(rng), lookat:=xlWhole).Row, i).Font.ColorIndex = 3
  9. Cells(rng.Find(y.Min(rng), lookat:=xlWhole).Row, i).Font.ColorIndex = 10
  10. Next
  11. End If
  12. ...
  13. ...
複製代碼
這段代碼可以正常執行出結果,可是在第八行會出現偵錯:

執行階段錯誤'91':
沒有設定物件變數或With區塊變數

是哪裡有問題嗎?
作者: oobird    時間: 2011-4-19 08:02

既然rng是在循環中的變量
第8行這樣即可
rng.Find(y.Max(rng), lookat:=xlWhole).Font.ColorIndex = 3
出現偵錯視窗應該是某次rng範圍沒有數字
作者: jesscc    時間: 2011-4-19 20:33

這次又出現

執行階段錯誤'1004':
無法取得類別 WorksheetFunction 的Max屬性

會不會是Max函數無法對空值的Cells做處理?
作者: jesscc    時間: 2011-4-21 19:41

我已經確定問題所在,如同大大說的,某次rng範圍沒有數字或是非數字、空值的時候就會產生這種錯誤,有沒有辦法讓MAX函數忽略這種情形呢?
作者: GBKEE    時間: 2011-4-22 16:41

回復 4# jesscc
For i = 2 To 5
    Set rng = Cells(3, i).Resize(8000)
    If y.Max(rng) Then
        Cells(rng.Find(y.Max(rng), lookat:=xlWhole).Row, i).Font.ColorIndex = 3
        Cells(rng.Find(y.Min(rng), lookat:=xlWhole).Row, i).Font.ColorIndex = 10
    End If
Next
作者: jesscc    時間: 2011-4-22 23:08

可以正常執行了,謝謝大大。
加入的這段:
If y.Max(rng) Then
代表什麼意思呢?
最重要的一句,可是卻最感受不到它的重要性!
作者: jesscc    時間: 2011-4-23 00:02

  1. Range("E3:E3000").Value = Range("E3:E3000").Value
  2. If OptionButton1 = True Then
  3. Dim i As Integer, rng As Range, y As WorksheetFunction
  4. Range("B3:E3000").Font.ColorIndex = 0
  5. Set y = WorksheetFunction
  6. Range("B3:E3000").Font.ColorIndex = 0
  7. For i = 2 To 5
  8. Set rng = Cells(3, i).Resize(3000)
  9. Cells(rng.Find(y.Max(rng), lookat:=xlWhole).Row, i).Font.ColorIndex = 3
  10. Cells(rng.Find(y.Min(rng), lookat:=xlWhole).Row, i).Font.ColorIndex = 10
  11. Next
  12. End If
複製代碼
剛剛又試了一次,發現還是會出錯,乾脆我就把 Cells �堛漱膠﹛A直接轉為數值,這樣就Ok了。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)