我正在寻找运行VBA查找功能的帮助。我设置了两个搜索功能,用于查找数据的开始和结束,并将其设置为vlookup的范围。我遇到问题的部分似乎是正确设置范围。我有行的整数值,列应保持标准。数据将在B列和I列之间。
当前显示的代码似乎不是在范围区域中设置代码的边界,而是返回那些courser导致错误的单元格的值。在此先感谢:)
有人知道我会设置范围/修复vlookup吗? 当前错误:无法获取工作表函数类的vlookup属性
PotatoePriceEuro.value和lengthinputtext.value是userform上的文本框输入。 Truecheck是模块内部早期的全局变量,它包含在前两个搜索函数中搜索的关键字。
该程序的目标是搜索工作表并查找由userform中的文本框(truecheck中的字符串)给出的特定字符串的第一次和最后一次出现,然后将其设置为vlookup的范围。然后,vlookup从userform(lengthinputtext.value)上的另一个文本框传递一个数字术语,然后在C列中搜索该数字,并返回其左侧的单元格值。请注意,用于设置范围的关键字位于B列中,要在该范围内搜索的长度将位于C列中
Private Sub optionselect()
Dim LastLocation As Range
Dim FirstLocation As Range
Dim FirstRow As Long
Dim LastRow As Long
Dim SearchVal As String
Dim returnval As Integer
Set FirstLocation = Range("B:B").Find(truecheck, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows)
Set LastLocation = Range("B:B").Find(truecheck, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, searchdirection:=xlPrevious)
FirstRow = FirstLocation.Row
LastRow = LastLocation.Row
PotatoPriceEuro.Value = Application.WorksheetFunction.VLookup(LengthInputText.Value, _
Range(Cells(FirstRow, 3), Cells(LastRow, 9)), 2, False)
End Sub
答案 0 :(得分:0)
最终的解决方案最终让我放弃使用vlookup,而是使用Find函数,然后将其偏移以检索信息,看起来像这样(仍然没有正确清理)。我不知道为什么我花了这么长时间才放弃vlookup以及为什么它不起作用。
Private Sub optionselect()
Dim LastLocation As Range
Dim FirstLocation As Range
Dim FirstRow As Long
Dim LastRow As Long
Dim SearchVal As String
Dim returnval As Integer
Dim lastlocationoff As Variant
Dim rng As Range
Dim resultfind As Range
Dim Columoff As Integer
lengthvlook = LengthInputText.Value
Set FirstLocation = Worksheets("Bucket Elevator"_
).Range("B:B").Find(truecheck, LookIn:=xlValues, lookat:=xlWhole _
, searchorder:=xlByRows)
Set LastLocation = Worksheets("Bucket Elevator" _
).Range("B:B").Find(truecheck, LookIn:=xlValues, lookat:=xlWhole _ ,
searchorder:=xlByRows, searchdirection:=xlPrevious)
FirstRow = FirstLocation.Row
LastRow = LastLocation.Row
Set resultfind = Worksheets("Bucket Elevator").Range("C" & FirstRow & _
":C" & LastRow).Find(LengthInputText.Value, LookIn:=xlValues, _
lookat:=xlWhole, searchorder:=xlByRows)
PektusPriceEuro = Worksheets("bucket elevator").Cells(resultfind.Row, 4)
End Sub