user3094480 user3094480 - 16 days ago 6
Vb.net Question

How to search textbox value in excel sheet and return col B to col F to other textboxes vb.net

I'm new to Vb.Net and I have learnt how to get data from excel to a datagridview. Now can anyone help me learn how to get excel data into textboxes?

I have a form with 6 textboxes and a search button. When I give textbox1 value and click on search button, I want to search an excel file which is selected by opendialogfile and saved in destination1 string

destination1 = destipath & Filename.Text & "_" & dtedate.ToShortDateString & ".xlsx" '& Format(TimeOfDay, "h.mm.ss tt")


The excel sheet1 has ID,Name,Father,Mother,Address,Phone and VB.net form has 6
textboxes respectively. Example when I enter i.e ID as 30 in textbox1, the code must search ID 30 in col A if found then textbox 2,3,4,5,6 must display Name,Father,Mother,Address,Phone.

The sheet row are dynamic but col are fixed. I have written the following code in excel vba but how can I implement similarly in VB.net?

I have tried this in vb.net but does not identify the Lookin, Lookwhole like in excel

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click

Dim xlappFile As Excel.Application = Nothing
Dim xlFile_WB As Excel.Workbook = Nothing
Dim xlFile_WS As Excel.Worksheet = Nothing
Dim xlFirstfile_WS1 As Excel.Worksheet = Nothing
Dim FoundRange As Excel.Range
Dim searchID As String
searchID = Textbox1.Text

xlFile_WB = xlappFile.Workbooks(destination1) ' destination1 is selected by 'user
MessageBox.Show(destination1)
xlFile_WS = xlappFile.Worksheets(1)
FoundRange = xlFile_WS.Cells.Find(What:=searchID, LookIn:=Excel.XlFindLookIn.xlFormulas, LookAt:=Excel.XlLookAt.xlWhole)

If FoundRange Is Nothing Then
textbox2.Text = "not found"
textbox3.Text = "not found"
textbox4.Text = "not found"
textbox5.Text = "not found"
textbox6.Text = "not found"
Else
textbox2.Text = FoundRange.Offset(0, 2).Value
textbox3.Text = FoundRange.Offset(0, 3).Value
textbox4.Text = FoundRange.Offset(0, 4).Value
textbox5.Text = FoundRange.Offset(0, 5).Value
textbox6.Text = FoundRange.Offset(0, 6).Value
End If
End Sub

Answer

Unlike under Excel/VBA, In VB.net you will need to scope the Excel constants by their namespace, like this:

FoundRange = xlFile_WS.Cells.Find(What:=searchID, LookIn:=Excel.XlFindLookIn.xlFormulas, LookAt:=Excel.XlLookAt.xlWhole)