vb.net 定义Microsoft.Office.Interop.Excel.Range的问题,请指教
Dim XlRange As Microsoft.Office.Interop.Excel.Range
Dim XL = New Microsoft.Office.Interop.Excel.Application
Dim XlList As Microsoft.Office.Interop.Excel.Range = New Microsoft.Office.Interop.Excel.Range
Dim iEachSize As Integer = DataGridView1.RowCount
Dim iColumnAccount As Integer = DataGridView1.ColumnCount
Dim NO(iEachSize, iColumnAccount) As Object
XlRange = XL.Range("A2", Chr(CInt(AscW(CChar("A"))) + DataGridView1.ColumnCount + 1) & CStr(DataGridView1.RowCount + 1))
For x = 0 To XlList.Count - 1
For y = 0 To XlList(x).Count - 1
NO(x, y) = XlList(x)(y)
Next
Next
XlRange.Value2 = NO
XlList一直提示在使用前被赋值,我想知道这个问题怎么解决啊?
[解决办法]
Dim exlApp As Excel.Application
Dim exlBook As Excel.Workbook
Dim exlSheet As Excel.Worksheet
exlApp = CreateObject("Excel.Application") '创建Excel的应用程序实例
exlBook = exlApp.Workbooks.Add '创建Excel的工作簿
'删除多余的sheet,只留一张
Dim co As Integer = exlBook.Sheets.Count
For i As Integer = 1 To co - 1
exlBook.Worksheets(1).delete()
Next
exlSheet = exlBook.Worksheets(1) '指定一张表
exlSheet.Name = _strFileName
exlApp.Visible = False
'======================================宏
' 宏由 龙觉寺 录制,时间: 2013-7-1
'exlSheet.Columns(1).ColumnWidth = 10.75
'exlSheet.Columns(2).ColumnWidth = 13.88
'设置表头
Dim oRange As Excel.Range
oRange = exlSheet.Range(exlSheet.Cells(1, 1), exlSheet.Cells(2, _DGV.ColumnCount))
参考以上代码:
Excel.Range是用来指定Excel.Worksheet(具体一张工作表)中的区域,你的程序中:
Dim XL = New Microsoft.Office.Interop.Excel.Application
这个XL定义的是一个Excel.Application,这根本不对的,
你看下我的blog:http://blog.csdn.net/whitewolf123/article/details/9615547
[解决办法]
EXCEL2003导出要特别注意每个SHEET只有256列,导出时最好计算一下数据列,如果超过256就要新增SHEET,EXCEL2007列基本上够用了.