Board logo

標題: [發問] 如何檢查工作表內的儲存格是否有#N/A [打印本頁]

作者: michael101772    時間: 2013-8-8 16:21     標題: 如何檢查工作表內的儲存格是否有#N/A

各位大大,

   因上傳資料到系統時,若儲存格內有#N/A,系統就無法進行運算。
   所以想寫一個可以在上傳資料前,先檢查工作表內儲存格有無#N/A(任何錯誤的型態)的巨集。
   收尋很久都沒有找到相關的文章,所以在此發文,請高手賜教。
   [attach]15730[/attach]
作者: p212    時間: 2013-8-8 22:34

回復 1# michael101772
請問您的儲存格結果「#N/A」是由函數運算後獲得?
若由函數運算獲得的,建議用IF組合其它函數修飾#N/A為「空格」即可解決。
請上傳參考檔案,一起研究吧!
作者: Hsieh    時間: 2013-8-8 23:43

回復 1# michael101772
  1. Function HasErr() As Boolean
  2. On Error Resume Next
  3. HasErr = IsError(Cells.SpecialCells(xlCellTypeFormulas, 16))
  4. End Function
  5. Sub 測試錯誤()
  6. MsgBox HasErr
  7. End Sub
複製代碼

作者: michael101772    時間: 2013-8-9 14:43

感謝 Hsieh大大的回覆

自己嘗試改寫成如下:

Sub text()

On Error GoTo HandleErr
ok = IsError(Cells.SpecialCells(xlCellTypeFormulas, 16))
ok = Ture
MsgBox "有#N/A,請Check"

Exit Sub


HandleErr:
  MsgBox "Nothing Happen"
End Sub
作者: michael101772    時間: 2013-8-9 14:45

回復 2# p212

P大,

我是使用vlookup函數去v值,我就是希望能在v不到的時候產生#N/A,這樣我才能發現錯誤。
作者: michael101772    時間: 2013-8-9 15:16

Dear Hsieh大大,

再請問如果想讓msgbox秀出是第幾行第幾列出現#N/A,這樣要怎麼寫?以我後來修改的程式來看。

感恩




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