返回列表 上一主題 發帖

除了使用on error resume next, 如何不顯示錯誤

本帖最後由 GBKEE 於 2012-7-3 15:03 編輯

回復 1# 2# enoch
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.    Dim xlrow  As Integer, xlLook As Variant
  4.     If Target.Column <> 2 Then Exit Sub
  5.     xlrow = Target.Row
  6.     If Cells(xlrow, "A") <> "" Then
  7.          'xlLook = Application.WorksheetFunction.VLookup(Cells(xlrow, "B"), [data], 1, False)
  8.          '使用工作表函數 Application.WorksheetFunction 如傳回錯誤值 系統會回應執行上的錯誤中段程式
  9.          xlLook = Application.VLookup(Cells(xlrow, "B"), [data], 1, False)
  10.         '但不加上WorksheetFunction  如傳回錯誤值 系統不會回應執行上的錯誤
  11.         '但變數型態 需設為 Variant
  12.         Cells(xlrow, "D") = IIf(Not IsError(xlLook), xlLook, "找不到")
  13.     End If
  14. End Sub
複製代碼

TOP

回復 5# enoch
Application.VLookup 等同 Application.WorksheetFunction.VLookup   
差別在函數傳回錯誤值時, 前者不加WorksheetFunction, vba不會產生程式上的錯誤值

TOP

        靜思自在 : 修行要繫緣修心,藉事練心,隨處養心。
返回列表 上一主題