簡體   English   中英

VB電子表格書寫鎖

[英]VB spread sheet writing lock

目前,我有一個小型應用程序,需要使用我已經能夠寫入文件的Microsoft.office.interop類,從一個對象中獲取信息並將其顯示為excel文件,並且它逐一顯示記錄被添加,但是大約每3次嘗試一次,電子表格就會停止填充第300條至第600條記錄之間的位置,我總共有6,000條記錄,並且每次都沒有中斷,完成后我進行檢查以查看最后一條記錄已填寫,但代碼從未達到這一點,我不確定發生了什么

我也不知道如何調試該問題,因為這意味着要經過6,000個循環來檢查它是否停止...甚至可能不會發生?

一小段代碼在這里

loadExcel(incidents, WorkSheetName)
            If WorkSheetName.Cells(DBObject.HighestInci + 1, 6) Is Nothing Then

                MessageBox.Show("Failed to fill spreadsheet, Retrying now.")
                loadExcel(incidents, WorkSheetName)

            End If

上面是代碼調用並檢查下面的方法

Private Sub loadExcel(ByVal incidents As List(Of Incident), ByRef WorkSheetName As Excel.Worksheet)

        Dim i = 2
        For Each inc As Incident In incidents

            WorkSheetName.Cells(i, 1) = inc.DateLogged
            WorkSheetName.Cells(i, 2) = inc.DateClosed
            WorkSheetName.Cells(i, 3) = Convert.ToString(inc.DateLogged).Substring(3, 2)
            i += 1
        Next

    End Sub

提前致謝

編輯

我正在考慮將其加載到某種類型的緩沖區中,然后在它們全部更新后編寫,而不是當前分別加載並單獨編寫它們? 但是我不知道從哪里開始呢?

我已經解決了我的問題,打開了我上面的Excel,並開始逐行打印到電子表格中,問題是與excel的任何交互都會導致流程凍結

通過添加

ExcelApp.visible = false 

在執行該過程之前,

ExcelApp.visible = true 

之后,一切正常,然后再打開文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM