Buongiorno, sono alle prime armi con vb.net.
Devo creare un' App desktop e in un form ho bisogno che quando schiaccio un bottone:
-si apra un file excel
-si cerchi la prima riga vuota
-si possa scrivere in quella riga
-si salvi il file (per ora salvo su un file diverso perchè non so come farglielo salvare su se stesso. Se glielo passo per riferimento mi da un errore)
Per aprire il file ho creato una funzione che poi richiamo, e questa funziona. Per il resto so che serve un ciclo per leggere le righe piene del file ma c'è qualcosa che sbaglio
Riporto di seguito i codici:
Public Function OpenExcel(filename As String) As Object
Dim retval As Object = Nothing
Try
Dim excel As Microsoft.Office.Interop.Excel.Application
Dim wb As Microsoft.Office.Interop.Excel.Workbook
Dim ws As Microsoft.Office.Interop.Excel.Worksheet
excel = New Microsoft.Office.Interop.Excel.Application
wb = excel.Workbooks.Open(filename)
excel.Visible = False
wb.Activate()
ws = wb.Worksheets.Item(1)
ws = excel.ActiveSheet
retval = ws.Cells(1, 1).value
Catch ex As exception
End Try
End Function
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim dialogo As OpenFileDialog
dialogo = New OpenFileDialog()
dialogo.ShowDialog()
Dim ds As Object = f.OpenExcel(dialogo.FileName)
Dim oExcel As Object
oExcel = CreateObject("Excel.Application")
Dim oBook As Object
Dim oSheet1 As Object
oBook = oExcel.Workbooks.Add()
oSheet1 = oBook.Worksheets(1)
oBook = oExcel.ActiveWorkbook
Dim UR As Integer = 0
UR = oSheet1.Range("A" & oSheet1.Rows.Count).End(Microsoft.Office.Interop.Excel.XlDirection.xlUp).Row
For rr = 1 To UR
If oSheet1.Range("A" & rr).Value = ("") Then
oSheet1.Range("A" & rr).value = "text1"
Else
MsgBox("box pieno")
End If
Next rr
oExcel.DisplayAlerts = False
oBook.SaveAs("C:\Users\an\Desktop\New" & ".xlsx")
oBook.Close()
oBook = Nothing