Vba 从visual basic studio保存到excel中

Vba 从visual basic studio保存到excel中,vba,Vba,我需要从Visual Studio 2015的Excel中保存信息,我目前使用的例程适用于我,但没有按要求保存信息,即每次我按下“保存”按钮时,您必须将信息一个接一个地添加到另一个,这使得代码只是替换先前保存的单元格。复制我用来保存的代码。我希望你能帮助我 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim oExcel As Object Dim oBook

我需要从Visual Studio 2015的Excel中保存信息,我目前使用的例程适用于我,但没有按要求保存信息,即每次我按下“保存”按钮时,您必须将信息一个接一个地添加到另一个,这使得代码只是替换先前保存的单元格。复制我用来保存的代码。我希望你能帮助我

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    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("A9").Value = "Supply Ducts"

        oSheet. Range("C5:E5"). Merge(True)
        oSheet. Range("A5:B5"). Merge(True)
        oSheet.Range("A5").Value = "Project Name:"

        oSheet. Range("C6:E6"). Merge(True)
        oSheet. Range("A6:B6"). Merge(True)
        oSheet.Range("A6").Value = "Engineering Name:"

        oSheet. Range("C7:E7"). Merge(True)
        oSheet. Range("A7:B7"). Merge(True)
        oSheet.Range("A7").Value = "Company Name:"

        oSheet.Range("A10").Value = "tramo"
        oSheet.Range("B10").Value = "Caudal de Diseño     PCM"
        oSheet.Range("C10").Value = "Velocidad de Diseño     pie/min"
        oSheet.Range("D10").Value = "Factor de Fricción"
        oSheet.Range("E10").Value = "Diámetro Equivalente     in"
        oSheet.Range("F10").Value = "Alto del Ducto     in"
        oSheet.Range("G10").Value = "Ancho del Ducto     in"
        oSheet.Range("H10").Value = "Longitud del Ducto      mts"
        oSheet.Range("I10").Value = "Longitud del Ducto Equivalente     ft"
        oSheet.Range("J10").Value = "Espesor"
        oSheet.Range("K10").Value = "Calibre"
        oSheet.Range("L10").Value = "Kg Ductos"
        oSheet.Range("M10").Value = "M2 Aislante"
        oSheet.Range("N10").Value = "Delpa P    in.c.a."


            oSheet.Range("A09").End(XlDirection.xlDown).Offset(1, 0) = Tramo
            oSheet.Range("B09").End(XlDirection.xlDown).Offset(1, 0) = Qdiseño
            oSheet.Range("C09").End(XlDirection.xlDown).Offset(1, 0) = Velocidad2
            oSheet.Range("D09").End(XlDirection.xlDown).Offset(1, 0) = FactorFriccion
            oSheet.Range("E09").End(XlDirection.xlDown).Offset(1, 0) = Diameduct
            oSheet.Range("F09").End(XlDirection.xlDown).Offset(1, 0) = Larcduct
            oSheet.Range("G09").End(XlDirection.xlDown).Offset(1, 0) = Anchduct
            oSheet.Range("H09").End(XlDirection.xlDown).Offset(1, 0) = Longducto
            oSheet.Range("I90").End(XlDirection.xlDown).Offset(1, 0) = (Longducto * 3.28084)
            oSheet.Range("J90").End(XlDirection.xlDown).Offset(1, 0) = espesor
            oSheet.Range("K09").End(XlDirection.xlDown).Offset(1, 0) = calibre
            oSheet.Range("L09").End(XlDirection.xlDown).Offset(1, 0) = (Anchduct + Larcduct) * espesor * Longducto * 11.64
            oSheet.Range("M09").End(XlDirection.xlDown).Offset(1, 0) = (Anchduct + Larcduct + 4) * Longducto * 0.1016
            oSheet.Range("N09").End(XlDirection.xlDown).Offset(1, 0) = ((Longducto * 3.28084 * FactorFriccion) / 100) * 1.05


            oExcel.Visible = True
            oExcel.UserControl = True

            oBook.SaveAs(Environ("UserProfile") & "\desktop\Ductos1.xls")

End Sub

我不确定我是否理解这段代码应该做什么。如果代码添加了“一个在另一个下面的信息”,那么如何“简单地替换先前保存的单元格”?我猜想,通过ADO.NET连接Excel而不是使用对象模型会更幸运。看起来您使用它更像是一个数据库。
oBook=oExcel.Workbooks.add
每次按下按钮时,您都在创建新工作簿并将其保存在现有工作簿上。你应该打开现有的工作簿,只添加一行……太好了,谢谢,我会试试的,它已经很好用了,非常好,谢谢。我不确定我是否理解这段代码应该做什么。如果代码添加了“一个在另一个下面的信息”,那么如何“简单地替换先前保存的单元格”?我猜想,通过ADO.NET连接Excel而不是使用对象模型会更幸运。看起来您使用它更像是一个数据库。
oBook=oExcel.Workbooks.add
每次按下按钮时,您都在创建新工作簿并将其保存在现有工作簿上。你应该打开现有的工作簿,只需添加一行……太好了,谢谢,我会试试的,它已经很好用了,非常好,谢谢