1

だから私は最近、現在のプロジェクトでOption Strict Onをオンにし、オプションがスローする小さなエラーをすべて修正した後、これにぶつかりました。

Public Sub ExportarExcel(ByVal grilla As DataGridView)

    Dim excelApp As Excel.Application
    Dim workbook As Excel.Workbook
    Dim sheet As Excel.Worksheet
    Dim i As Integer = 1
    Dim j As Integer = 1
    excelApp = CType(CreateObject("Excel.Application"), Excel.Application)
    workbook = excelApp.Workbooks.Add
    sheet = CType(workbook.Worksheets.Add, Excel.Worksheet)

    For Each col As DataGridViewColumn In grilla.Columns
        sheet.Cells(1, i).Borders.LineStyle = Excel.XlLineStyle.xlContinuous 'Problematic line
        sheet.Cells(1, i) = col.HeaderText
        i = i + 1
    Next
    i = 2

    For Each row As DataGridViewRow In grilla.Rows
        j = 1
        For Each cell As DataGridViewCell In row.Cells
            sheet.Cells(i, j).Borders.LineStyle = Excel.XlLineStyle.xlContinuous 'Problematic line
            sheet.Cells(i, j) = cell.Value
            j = j + 1
        Next
        i = i + 1
    Next

    sheet.Columns.AutoFit()
    excelApp.Visible = True
End Sub

これらの 2 行 (最初から "Borders." まで) は遅延バインディング エラーをスローしており、これらの行の適切なキャストまたは修正がどれかわかりません。

4

2 に答える 2

1

私が見つけたドキュメントによると (ここ: http://msdn.microsoft.com/en-us/library/office/ff822605.aspx、およびここ: http://msdn.microsoft.com/en-us/library/ office/aa612949(v=office.10).aspx ) の場合、Bordersプロパティは、必要な境界線 (上、下、左、右など) を表す定数によってインデックス付けされたコレクションを返します。

あなたの行はおそらく次のようになります。

sheet.Cells(1, i).Borders(xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous
于 2012-11-14T22:41:19.900 に答える
0

sheet.Cells(i, j).Text = cell.Valueまたはのいずれかを使用できますsheet.Cells(i, j).Value = cell.Value(これは Value2 の場合があります)

于 2012-11-14T21:29:25.063 に答える