Tôi đang sử dụng Office 2007. Tôi có một macro PowerPoint sử dụng trang tính Excel để thực hiện vLookup. Tôi đã thực hiện một chức năng công khai cho vLookup. Nó hoạt động tốt khi tất cả các giá trị được cung cấp đúng cách. Bây giờ tôi đang cố gắng để nắm bắt lỗi cho những điều kiện mà không tìm thấy giá trị tra cứu. Mã chức năng là:Vlookup và ISERROR
Public Function v_lookup _
(lookup_value As Variant, _
table_array As Range, _
col_index_num As Integer, _
range_lookup As Boolean) _
As String
Dim varResult As Variant
Dim objExcelAppVL As Object
Set objExcelAppVL = CreateObject("Excel.Application")
objExcelAppVL.Visible = False
varResult = objExcelAppVL.Application.WorksheetFunction.VLookup _
(lookup_value, _
table_array, _
col_index_num, _
range_lookup)
If IsError(varResult) Then varResult = ""
v_lookup = varResult
objExcelAppVL.Quit
Set objExcelAppVL = Nothing
End Function
tôi gọi chức năng này từ vĩ mô chủ yếu với các tuyên bố sau:
varGatherNumber = v_lookup(varDateTime, Lit_Sched_Table_Lookup, 5, vbFalse)
Mã này hoạt động tốt khi không có lỗi. Vấn đề là khi tra cứu không thành công, tôi bị ném vào Debug trỏ đến,
varResult = objExcelAppVL.Application.WorksheetFunction.VLookup
.. statement. Nó không bao giờ được báo cáo If IsError(varResult)...
khi có lỗi vlookup. Làm thế nào tôi có thể bẫy một lỗi vLookup đúng cách?
Bạn thường điền vào nhiều hàng (hoặc cột) với việc sử dụng lặp lại chức năng này? – Jeeped
Xóa '.WorksheetFunction' để' Application.Vlookup (... ' –
Cảm ơn @ScottCraner. Gỡ bỏ .WorksheetFunction đã khắc phục được sự cố của tôi. Tôi đánh giá cao sự giúp đỡ của bạn. – user3138025