(Visual Basics和Excel)如果单元格A1中包含某些内容,如何将特定值放入单元格A2中

时间:2017-10-15 04:10:06

标签: excel vb.net excel-vba vba

我正在编写一个代码,用于从简单的3文本框表单中获取信息并将其保存到Excel工作表中。我目前的代码如下:

Private Sub Button1_MouseClick(sender As Object, e As MouseEventArgs) Handles Button1.MouseClick
    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object

    oExcel = CreateObject("Excel.Application")
    oBook = oExcel.Workbooks.Add

    oSheet = oBook.Worksheets(1)
    oSheet.Range("A1") = TextBox1.Text
    oSheet.Range("B1").Value = TextBox2.Text
    oSheet.Range("C1").Value = TextBox3.Text
    oBook.SaveAs("Book1.xlsx")
    oExcel.Quit
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
End Sub

因此,当单击我的按钮时,3个框中的信息应该被放入每行的下一个可用单元格中。

我希望第1列有名称,所以当单元格A1等于从过去填充的东西输入时,然后将TextBox1.text的值放入下一个单元格中,如果填充后再移动到A3,那么上。检查第一个单元格是否已填充然后移动到第二个单元格的命令是什么?

此外,我如何获取它以便我不必将Excel电子表格另存为新电子表格,而只是添加到当前的电子表格中。

谢谢你,如果你能理解我所说的话,并会帮助我!我是编码的新手,所以这是我最好的解释最新情况:P。

1 个答案:

答案 0 :(得分:0)

要打开现有工作簿,请使用Workbooks.Open(filename)

要查找A列中最后使用的行,请使用Cells(Rows.Count,"A").End(-4162).Row之类的内容。 (-4162是Excel中xlUp常量的值。)

要保存工作簿,请使用SaveAs而不是Save

全部放在一起:

Private Sub Button1_MouseClick(sender As Object, e As MouseEventArgs) Handles Button1.MouseClick
    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object
    Dim lastRow As Long

    oExcel = CreateObject("Excel.Application")
    oBook = oExcel.Workbooks.Open("C:\Temp\myBook.xlsx")

    oSheet = oBook.Worksheets(1)
    lastRow = oSheet.Cells(oSheet.Rows.Count, "A").End(-4162).Row`
    oSheet.Cells(lastRow + 1, "A").Value = TextBox1.Text
    oSheet.Cells(lastRow + 1, "B").Value = TextBox2.Text
    oSheet.Cells(lastRow + 1, "C").Value = TextBox3.Text
    oBook.Save
    oBook.Close
    oExcel.Quit
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
End Sub