我正在编写一个代码,用于从简单的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。
答案 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