2017-10-15 44 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 
相關問題