1
私はデータグリッドビューを持っており、Excelにエクスポートしたい。 データグリッドビューの[表示]列のみをエクスポートします。'インデックスが範囲外でした。負でなく、コレクションのサイズより小さくなければならない
しかし、このエラーが発生しています。私はこのエラーを取得しておく
Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
Dim ExcelApp As Excel.Application
Dim ExcelWorkBk As Excel.Workbook
Dim ExcelWorkSht As Excel.Worksheet
Dim i As Integer
Dim j As Integer
ExcelApp = New Excel.Application
ExcelWorkBk = ExcelApp.Workbooks.Add()
ExcelWorkSht = ExcelWorkBk.Sheets("Sheet1")
Dim columnsCount As Integer = DGVinfo3.Columns.Count
For i = 0 To DGVinfo3.RowCount - 1
If DGVinfo3.Columns(i).Visible = True Then
For j = 0 To DGVinfo3.ColumnCount - 1
For k As Integer = 0 To DGVinfo3.Columns.Count + 1
If DGVinfo3.Columns(k).Visible = True Then
ExcelWorkSht.Cells(1, k) = DGVinfo3.Columns(k - 1).HeaderText
ExcelWorkSht.Cells(1, k).Font.Bold = True
ExcelWorkSht.Cells(1, k).interior.color = RGB(192, 203, 219)
ExcelWorkSht.Cells(i + 1, j + 1) = DGVinfo3(j, i).Value
End If
Next
Next
End If
Next
End Sub
:私はエラーを取得する場所
System. Argument Out Of Range Exception: 'Index was out of range. Must be non-negative and less than the size of the collection.'
ここでは、次のとおりです。
ExcelWorkSht.Cells(1, k) = DGVinfo3.Columns(k - 1).HeaderText
'kの整数= 0 + 1 'DGVinfo3.Columns.Countしますあなたは '+ 1'の代わりに' -1'を持っていたのですか? – litelite
@liteeliteまだ同じ問題がエラー – Jj84
DGVinfo3.Columns.Count + 1を与えて、その後(i + 1、j + 1)。あなたは何を達成しようとしていますか?また、kが0のときの(k-1) – n8wrl