none
Problema con guardado de info en Excel en Visual Studio RRS feed

  • Pregunta

  • Tengo el siguiente codigo para capturar datos a un disco duro en red:

    Imports Excel = Microsoft.Office.Interop.Excel

    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

            If area.Text = "Area" Then
                MsgBox("Ingresa Area", MsgBoxStyle.OkOnly, "xlSheet")
            Else
                'On Error GoTo ErrHandler
                Dim xlApp As Excel.Application
                Dim xlWorkBook As Excel.Workbook
                Dim xlSheet As Excel.Worksheet

                xlApp = New Excel.Application()
                xlWorkBook = xlApp.Workbooks.Open("P:\CAPTURA PRODUCTIVIDAD MGM\Book1.xlsx")
                xlSheet = xlWorkBook.Worksheets("Hoja1")

                xlSheet.Range("a2").End(Excel.XlDirection.xlDown).Offset(1, 0).Value = Label5.Text

                If area.Text = "FLEXOGRAFIA" Then
                    xlSheet.Range("c2").End(Excel.XlDirection.xlDown).Offset(1, 0).Value = tar1.Text
                    xlSheet.Range("d2").End(Excel.XlDirection.xlDown).Offset(1, 0).Value = tar2.Text
                    xlSheet.Range("e2").End(Excel.XlDirection.xlDown).Offset(1, 0).Value = ord1.Text
                    xlSheet.Range("f2").End(Excel.XlDirection.xlDown).Offset(1, 0).Value = ord2.Text
                End If

                If area.Text = "OFFSET" Then
                    xlSheet.Range("g2").Offset(1, 0).Value = tar1.Text
                    xlSheet.Range("h2").Offset(1, 0).Value = tar2.Text
                    xlSheet.Range("i2").Offset(1, 0).Value = ord1.Text
                    xlSheet.Range("j2").Offset(1, 0).Value = ord2.Text
                End If

                If area.Text = "SERIGRAFIA" Then
                    xlSheet.Range("k2").Value = tar1.Text
                    xlSheet.Range("l2").Value = tar2.Text
                    xlSheet.Range("m2").Value = ord1.Text
                    xlSheet.Range("n2").Value = ord2.Text
                End If

                If area.Text = "KITS" Then
                    xlSheet.Range("o2").Value = tar1.Text
                    xlSheet.Range("p2").Value = tar2.Text
                    xlSheet.Range("q2").Value = ord1.Text
                    xlSheet.Range("r2").Value = ord2.Text
                End If

                MsgBox("Guadado Exitoso", MsgBoxStyle.OkOnly, "xlSheet")
                xlWorkBook.Save()
                xlWorkBook.Close()

                xlApp.Quit()
                releaseObject(xlApp)
                releaseObject(xlWorkBook)
                releaseObject(xlSheet)

                Me.Close()
            End If

            'ErrHandler:
            'MsgBox("Imposible Guardar", vbCritical, "Error!")
            'Me.Close()

        End Sub

        Private Sub releaseObject(ByVal obj As Object)
            Try
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
                obj = Nothing
            Catch ex As Exception
                obj = Nothing
            Finally
                GC.Collect()
            End Try
        End Sub

        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Label5.Text = Date.Now.Date
        End Sub
    End Class

    Pero me da el error

    Excepción de HRESULT: 0x800A03EC

    He tratado con muchos tutoriales pero ni uno ha podido solucionar mi probema y lo necesito para automatizar capturas en mi trabajo.
    jueves, 30 de mayo de 2013 20:47

Todas las respuestas

  • Segun yo la sentencia:

    xlSheet.Range("c2").End(Excel.XlDirection.xlDown).Offset(1, 0).Value = tar1.Text

    Da lugar a que busque la ultima celda donde hay un valor y escriba debajo de ella, asi los valores no se sobreescriben y lo puedo usar como base de datos. El error que manda es acerca de generar el archivo, archivo que ya esta generado, es lo que no entiendo....

    jueves, 30 de mayo de 2013 22:25