arpita aradhya Ответов: 2

Как искать значение TextBox в Excel лист Коль и вернуть столбец B в столбец F для других текстовых полей


Привет,

Я новичок в Vb.Net и я научились получать данные из excel в datagridview. Теперь кто-нибудь может помочь мне узнать, как получить данные excel в текстовые поля?

У меня есть форма с 6 текстовыми полями и кнопкой поиска. Когда я даю значение textbox1 и нажимаю на кнопку поиска, я хочу найти файл excel, который выбирается opendialogfile и сохраняется в строке destination1
destination1 = destipath & Filename.Text & "_" & dtedate.ToShortDateString & ".xlsx" '& Format(TimeOfDay, "h.mm.ss tt")


На лист1 Excel имеет идентификатор,имя,Отца,Матери,адрес,телефон и VB.net форма имеет 6
текстовые поля соответственно. Пример, когда я ввожу i.e ID как 30 в textbox1, код должен искать ID 30 в col A, если он найден, то textbox 2,3,4,5,6 должен отображать имя,отца,мать,адрес,телефон.

Строка листа динамична, но col фиксирован. Я написал следующий код в excel vba но как я могу реализовать аналогично в excel vba VB.net-что?

Что я уже пробовал:

 Dim FoundRange As Range
 Hide   Expand    Copy Code
Option Strict On
Imports Excel = Microsoft.Office.Interop.Excel
Imports Microsoft.Office
Imports System.Runtime.InteropServices
 
Public class Test
 
    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
End Class

arpita aradhya

Я улучшил код и отредактировал код в посте. Теперь у меня есть ошибка в строке xlFile_WB = xlappFile.Книги(destination1). system nullreferenceexception ссылка на объект не установлена

2 Ответов

Рейтинг:
0

Richard MacCutchan

В VB.NET вам нужно будет использовать Microsoft.Офис.Взаимодействие.Пространство имен Excel ()[^].


Рейтинг:
0

Member 14944934

Здравствуйте, друзья, пожалуйста, найдите полный рабочий код. Это работает !!!

Явный Параметр На
Импортирует Microsoft.Офис.Взаимодействие
Импортирует Microsoft.Офис.Взаимодействие.Превосходить
Система Импорта.Во время выполнения.InteropServices
Общественного Класса Form1
Dim xlapp как приложение
Dim xlworkbook как рабочая тетрадь
Dim xlworksheet как рабочий лист
Dim xlworksheet2 как рабочий лист
Тусклый Фаундранж Как Экселенц.Диапазон
Dim searchID в виде строки
Частная суб методе form1_load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить

xlapp = новое приложение с {.ScreenUpdating = False}

Конец Подводной Лодки

Частная суб методе button2_click(отправителя как объект, а равно EventArgs) обрабатывает элемент button2.Нажмите
Попробуй
xlworkbook = xlapp.Рабочая тетрадь.Открыть("C:\DATA\Packaging\Packaging.xlsx")
xlworksheet = xlworkbook.Рабочие Листы("Упаковка")
searchID = текстовое поле textbox1.Текст
Found Range = xlworksheet.Ячейки.Find(What:=searchID, LookIn:=Excel.XlFindLookIn.xlFormulas, LookAt:=Excel.XlLookAt.xlWhole)


Если Найденыш-Это Ничто, То
TextBox2.Text = "не найден"
TextBox3.Text = "не найден"
TextBox4.Text = "не найден"
TextBox5.Text = "не найдено"
TextBox6.Text = "не найден"
TextBox7.Text = "не найден"
Еще
TextBox2.Text = Found Range.Смещение(0, 1).Значение
TextBox3.Text = FoundRange.Смещение(0, 2).Значение
TextBox4.Text = Found Range.Смещение(0, 3).Значение
TextBox5.Text = FoundRange.Смещение(0, 4).Значение
TextBox6.Text = FoundRange.Смещение(0, 5).Значение
TextBox7.Text = FoundRange.Смещение(0, 6).Значение
Конец, Если

xlapp.Свойство Screenupdating = True В
xlworkbook.Сохранить()
xlworkbook.Закрывать()
Поймать ex как исключение
Ящик для сообщений.Показать("файл Excel отсутствует в своем местоположении C:\DATA\Packaging папка или переименована !!!")
Конец Попытки
Конец Подводной Лодки

Частная суб обработчика button1_click(отправителя как объект, а равно EventArgs) обрабатывает кнопки button1.Щелчок
Текстовое Поле 1.Очистить()
Текстовое поле textbox1.Текст = Ничего
Поле textbox2.Понятно()
TextBox2.Text = Ничего
Textbox3 и.Понятно()
TextBox3.Text = Ничего
TextBox4.Понятно()
TextBox4.Text = Ничего
TextBox5.Понятно()
TextBox5.Text = Ничего
TextBox6.Понятно()
TextBox6.Text = Ничего
TextBox7.Понятно()
TextBox7.Text = Ничего
Текстовое Поле 1.Выберите()
Конец Подводной Лодки
End Класса