Я пытаюсь заполнить файл Excel, используя цикл for, логика для заполнения заключается в том, чтобы делать это каждые 189 результатов, например:
Заполнение от A1 до A189 Заполнение от B1 доB189
На данный момент у меня есть код, который отлично работает с первой строкой A, но проблема в том, когда я пробую его с B, C, D и т. Д.
Этомой код:
'' I don't need first 4 results.
'' Total rows in this case is 569
For index as Integer = 5 To totalRows Step 1
Dim column as Integer = 2
'' var used to know if row is completed and change the ExcelProcess method
If rowsCompleted = 1 Then
'' realRows = 569 / 3 rounded down = 189
'' Flag initial value = 5 and is used as a internal index value instead of index var at for loop.
If flag <= realRows Then
'' copy
'' Excel Range = spreadsheet1.Cells(index, 7)
'' paste
'' Excel Range = spreadsheet2.Cells(8 * rowsCompleted - 6, index)
flag = flag + 1
Else
'' copy
'' Excel Range = spreadsheet1.Cells(index + 2, 7)
flag = flag + 1
'' paste
'' Excel Range = spreadshee2.Cells(8 * rowsCompleted - 6, flag)
End If
Else
rowsCompleted = rowsCompleted + 1
flag = 5
End If
Next
Отладка шаг за шагом я нашел некоторые важные детали.
Первая строка содержит 190 строк, но первая не нужна, поэтому мне нужно только 189 строк и начать с 5Вторая и третья строка содержит 189 строк, поэтому проблем нет.Также мне нужно начать с 5 строки.
Также я обнаружил, что с моим кодом первая строка хорошо заканчивается на 190. Вторая строка должна заканчиваться на 379, но я обнаружил, что она заканчивается на 381 или 382. Поэтому я думаю, чтовозможно проблема в моём цикле for и index или flag vars.
Также я думаю, что, возможно, проблема в том, чтобы скопировать значение с этим кодом: Excel Range = spreadsheet1.Cells(index + 2, 7)
, потому что я добавляю + 2.