Запись данных в Excel в первую свободную ячейку - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Прошу помощи!!! Я новичек, поэтому сильно не ругайте и не переводите тему типа "вон там посмотри". Хотелось бы увидеть конкретный код. Задача: есть два поля textbox1 и textbox2, кнопка button1 "Записать". Необходимо при нажатии кнопки выполнить запись из textbox1 и textbox2 в таблицу excel (например файл 1.xlsx). Причем textbox1 в столбец "В", а textbox2 в столбец "С", но в свободную строку (не заполненную), например 1, 2, 3 строки заполнены, а 4 пустая - так вот в нее! Надеюсь понятно изложил. Пожалуйста!

Решение задачи: «Запись данных в Excel в первую свободную ячейку»

textual
Листинг программы
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'кнопка Найти
        Dim xlApp As New Excel.Application 'приложение Excel
        Dim xlWB As Excel.Workbook = Nothing 'книга
        Dim xlSht As Excel.Worksheet = Nothing  'лист
        Dim iFillFileName As String = String.Empty
        Dim Rng As Excel.Range 'найденная ячейка
        Const xlFormulas = -4123 'искать только в формулах
        Const xlwhole = 1 'искать "Ячейка целиком"
        Const xlPart = 2 'искать "часть ячейки"
        Dim TextToFind As String = String.Empty
 
        If Me.TextBox3.Text = "" Then
            MessageBox.Show("Вы не указали текст для поиска!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Exit Sub
        End If
 
        TextToFind = Me.TextBox3.Text
 
        iFillFileName = "G:\VB.NET TEST\Book1.xlsx" 'путь к нашему Excel файлу
 
        If xlWB Is Nothing Then
            Try
                xlWB = xlApp.Workbooks.Open(iFillFileName)
            Catch ex As Exception
                MessageBox.Show("Не удалось открыть файл " & iFillFileName, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End Try
 
            Try
                xlSht = xlWB.Worksheets("Лист1") 'укажите имя листа 
            Catch ex As Exception
                MessageBox.Show("Не удалось найти указанный лист в файле " & iFillFileName, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information)
                xlWB.Close(SaveChanges:=True) 'сохраняем файл и закрываем его
                xlApp.Quit() 'закрываем Excel
                Exit Sub
            End Try
        End If
 
        With xlSht
            Rng = .Columns("B").find(TextToFind, , xlFormulas, xlwhole)
            If Rng Is Nothing Then
                MessageBox.Show("В столбце В не удалось найти текст: " & TextToFind, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If
 
            Form2.TextBox1.Text = .Cells(Rng.Row, "A").value
            Form2.TextBox2.Text = .Cells(Rng.Row, "B").value
            Form2.TextBox3.Text = .Cells(Rng.Row, "C").value
            Form2.TextBox4.Text = .Cells(Rng.Row, "D").value
            Form2.TextBox5.Text = .Cells(Rng.Row, "E").value
            Form2.Show()
        End With
 
        xlWB.Close(SaveChanges:=True) 'сохраняем файл и закрываем его
        xlApp.Quit() 'закрываем Excel
 
        'Закрытие Excel, чтобы он не весел в диспетчере задач
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
            xlApp = Nothing
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            GC.Collect()
        End Try
    End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы