Рабочая таблица 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()
это все, что тебе нужно.