如何将HLookup结果与""



我尝试使用Hlookup。

代码返回以下错误:

"无法获取WorksheetFunction类的HLookup属性">

我尝试了错误处理,但我得到了:

运行时错误"13"类型不匹配。

我意识到这是因为数据类型冲突。如何以If myHLookupResult <> "" Then MsgBox myHLookupResult可以处理长数据类型的方式来表达它。

Dim myHLookupResult As Long
On Error Resume Next
myHLookupResult = WorksheetFunction.HLookup(CalcSheet.Range("C81"), CalcSheet, 57)
On Error GoTo 0

If myHLookupResult <> "" Then MsgBox myHLookupResult

pmp.Offset(0, 14).Value = myHLookupResult

说明@BigBen的评论,并查看您的代码:

  • 使用变体类型,以便处理返回的错误
  • 使用变量设置查找变量和范围(不是必需的(
  • 定义是否希望与查找函数中的最后一个参数完全匹配

旁注:您的查找范围设置为图纸名称(或至少显示(

阅读代码的注释并根据您的需要进行调整。

Public Sub HLookupResult()

' Not required, but nice to set the value to a variable
Dim lookupValue As Variant
lookupValue = CalcSheet.Range("C81").Value

' Not required, but nice to set the lookup range to a variable
Dim lookupRange As Range
Set lookupRange = CalcSheet.Range("A1:B5")

' Use variant so if not found can handle the error
Dim resultValue As Variant
resultValue = Application.HLookup(lookupValue, lookupRange, 2, False)

' Check the error and do something
If IsError(resultValue) Then
MsgBox "Not found"
Else
MsgBox resultValue
End If
End Sub

好吧,我意识到我不知道如何使用HLookup函数,需要它:

myHLookupResult = WorksheetFunction.HLookup(CalcSheet.Range("C81"), CalcSheet.Range("C57:CX58"), 2)

尽管我确信如果出现任何问题,错误检查会有所帮助。

谢谢。

最新更新