因此,我试图在我的应用程序中找到使用.Find
函数的方法,并且需要找到文本框中键入的值,并返回值和行完全匹配,或显示该值根本不在电子表格中。虽然我有一个没有循环的工作实现,但我在文本框中添加的任何内容都是Substring
。这不是我想要的。
我不熟悉VBA,而且我所看到的只有VBA用For Loops
来实现这一点的方法,我在找到单元格中的值时运气不佳。我目前正在这样做:
Dim xlApp = New Excel.Application ' this starts new Excel Application
Dim xlWB = xlApp.Workbooks.Open("C:\Users\Me\Desktop\ExcelValues.xls")
Dim xlWS = xlWB.Worksheets("Sheet1")
Dim Value2Find_1 As String = txtValue1.Text
Dim Range2Use_1 = xlWS.Range("A1:A4000") 'Range to span the A Column.
Dim xlCell_A = Range2Use_1.Find(txtValue1.Text) 'Looks up the searched serial value in A Column.
Dim LastRow = xlWS.Range("A4000").End(Excel.XlDirection.xlUp).Row + 1
If Value2Find_1 <> Nothing Then
Range2Use_1.Find(What:=Value2Find_1, MatchCase:=True)
MessageBox.Show("Value of " & Value2Find_1 & " found in cell " & xlCell_A.Row)
Else
MsgBox("no match...")
End If
我可以得到这个,甚至可以找到工作表中行的值,但即使我使用Value2Find_1
的字符串,如MICHAEL
,如果我键入{{1在文本框中,它将返回给定行的MIC
内的子字符串。因为用户将搜索可变长度的字符串,所以我无法对字符串值设置限制。是否有一个完整的例子来完成这个没有使用循环结构的VBA示例。我发现Excel的查找功能并不可靠,因为我无法设置MICHAEL
参数。我已经查看了其他示例,它们看起来非常抽象,并且不能很好地解释使用循环结构获取值并将它们从ExactMatch
转换为Integer
时发生的情况。找到的项目所在的单元格。
注意:是的,我正在使用Excel Interop ... String
答案 0 :(得分:0)
在LookAt
功能中使用参数Find
。像下面的东西
Range2Use_1.Find(What:=Value2Find_1, MatchCase:=True, LookAt:=xlWhole)