2017-10-15 38 views
1

我正在编写一个代码以从简单的3文本框形式获取信息并将其保存到Excel工作表中。我当前的代码如下:(Visual Basic和Excel)如何将一定的值放入单元格A2中(如果单元格A1中有东西)

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。

回答

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 
相关问题