Kann jemand erklären, warum mein Code mich Daten in Excel nicht speichern lässt, außer ich ein MsgBox
einschließe?Daten werden nicht in einer Excel-Datei gespeichert, es sei denn, eine MsgBox erscheint zuerst
ist hier mein Code:
Sub createreport()
Try
Dim XA As New Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
wb = XA.Workbooks.Open(dataDirectory + "employee_info\dtr_emp.xlsx", False, False, True)
ws = wb.Worksheets("Sheet1")
MsgBox("Test") '<---- THIS IS THE MSGBOX I WAS TALKING ABOUT
For i As Integer = 0 To Me.EmployeeInfoDataGridView.Rows.Count - 1
Dim DGV As DataGridViewRow = Me.EmployeeInfoDataGridView.Rows(i)
ws.Cells(7 + i, 1) = DGV.Cells(0).Value
ws.Cells(7 + i, 2) = DGV.Cells(1).Value
ws.Cells(7 + i, 3) = DGV.Cells(2).Value
ws.Cells(7 + i, 4) = DGV.Cells(3).Value
ws.Cells(7 + i, 5) = DGV.Cells(4).Value
ws.Cells(7 + i, 6) = DGV.Cells(5).Value
ws.Cells(7 + i, 7) = DGV.Cells(6).Value
ws.Cells(7 + i, 8) = DGV.Cells(7).Value
ws.Cells(7 + i, 9) = DGV.Cells(8).Value
ws.Cells(7 + i, 10) = DGV.Cells(9).Value
ws.Cells(7 + i, 11) = DGV.Cells(10).Value
ws.Cells(7 + i, 12) = DGV.Cells(12).Value
ws.Cells(7 + i, 13) = DGV.Cells(14).Value
Next
XA.Visible = False
wb.SaveAs(dataDirectory + "employee_info\temp_" + Form1.lbl_date.Text + ".xlsx")
wb.Close(True)
XA.Quit()
wb = Nothing : ws = Nothing : XA = Nothing
Try
My.Computer.FileSystem.CopyFile("employee_info\temp_" + Form1.lbl_date.Text + ".xlsx", "employee_info\employee_infos.xlsx", True)
My.Computer.FileSystem.DeleteFile("employee_info\temp_" + Form1.lbl_date.Text + ".xlsx", FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently, FileIO.UICancelOption.DoNothing)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
exit_excel_process.Show()
End Sub
Keine Daten in Excel-Datei gespeichert werden, wenn ich in dem MsgBox
Code setzte
Es scheint der Code läuft schneller als der Computer die Datei öffnen können. Schau dir das mal an: http://stackoverflow.com/questions/33817414/wait-for-big-files-to-open-in-excel – Andreas
Danke für die Antwort, ich habe versucht Threading.Thread.Sleep (10000) zu schreiben das sind 10 Sekunden aber es scheint das Problem ist immer noch da –
Ich habe versucht die Codes, die Sie gegeben haben, aber immer noch es funktioniert nicht. Immer noch, dass MsgBox die Antwort, aber es ist so nervig, eine msgbox in einem Fenster Anruf –