Рабочая таблица Excel Interop HRESULT: 0x800A03EC с использованием VB.net

Поэтому в моем приложении vb.net я извлекаю данные (около 1046 строк в таблице) из базы данных, чтобы предварительно загрузить содержимое в таблицу Excel. Это прекрасно работает до 999 строк, но если оно превышает 999 строк, это дает мне конкретную ошибку. Просто интересно, есть ли ограничение. Есть идеи? Я использую Windows 10, Management Studio 2012 и Excel 2007.

Код:

Private Sub readEmployee(ByVal employee As data.employeeList)

            Dim excelWorkSheet As Excel.Worksheet 
            Dim startRow As Integer = 9
            Dim firstNames As String = ""
            Dim lastNames As String = ""              

            With excelWorkSheet  
                startRow = 9
                Dim row As data.employeeList.employeeListRow
                For Each row In employee.employeeList
                    If row.RowState <> DataRowState.Deleted Then

                        firstNames = CStr(IIf(row.FirstName.Trim() = "", "", row.FirstName.Trim()))
                        lastNames = CStr(IIf(row.LastName.Trim() = "", "", row.LastName.Trim()))

                        .Range("A" + startRow.ToString("n0")).Value = lastNames
                        .Range("B" + startRow.ToString("n0")).Value = firstNames          
                        startRow += 1
                    End If
                Next
            End With
    End Sub

1 ответ

Решение

Когда startRow=1000,

startRow.ToString("n0") возвращает 1000 Это неправильный формат для Range параметр.

Вам не нужно использовать, FormatProvider за ToString Вот. Просто используйте перегрузку по умолчанию.

startRow.ToString()

это все, что тебе нужно.

Другие вопросы по тегам