请问在VB中如何快速地将EXCEL中的数据赋值给一个数组,如果用循环去赋值太慢了!比方说我有一个数组DATASOURCE(100,2) 那么我如何快速的将“A1,B200"这个区域的数据赋值给数组DATASOURCE。不要使用循环,太慢了。谢谢大家!
解决方案 »
- 关于调用数组的问题 [正解+100]
- 一个关于EXCEL的程序问题
- 紧急求助:如何让开发的程序在简体中文系统和繁体中文系统中都能使用?
- convert为什么不能用在vb里,我想用convert的功能把数据库字段precipitation(为char类型)转型后求和,怎么办???
- 读取加密的.ini文件?
- 如何清空DataGrid中显示的内容!
- 急切等待中……vb原代码
- 用select语句将用Access2000建的表导出为dbf格式的表,怎样导出不会出错.
- 关心自己的健康
- 分数不多,可一片诚心想搞明白,高手请进
- 高手请进!shell问题!
- 欢迎讨论,关于VBA到VB时程序执行速度变慢的原因和解决方法!
将RecordSet赋给QUERY
Dim Icolcount As Integer
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlQuery As Excel.QueryTable
With Rs_Data
If .RecordCount < 1 Then
MsgBox ("没有记录!")
Exit Function
End If
'记录总数
Irowcount = .RecordCount
'字段总数
Icolcount = .Fields.Count
End With
Set xlApp = CreateObject("Excel.Application")
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlBook = xlApp.Workbooks().Add
Set xlSheet = xlBook.Worksheets("sheet1")
xlApp.Visible = True
Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))
'添加查询语句,导入EXCEL数据
With xlQuery
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
End With
xlQuery.FieldNames = True '显示字段名
xlQuery.RefreshRs_Data就是你传递过来的记录集
1.Rs_Data是一个什么类型的数据呢?
2.我如何来给Rs_Data赋值呢?
3.我看你的程序中使用了Query,这是不是需要数据库方面的知识呢?而我在这方面可以说是一无所知,^.^.....
我水平有限,给你添麻烦了,多多包涵了,呵呵,,
你好,如果我使用你的方法是可以加快速度,但是由于我要对DATASOURCE中的一部分数组进行处理,所以如何定位呢?望多多指教,谢谢! 我试着定义DATASOURCE为一个二元数组,但不能直接赋值给它,必须采用循环才行吗?Dim DATASOURCE
DATASOURCE = MySheet.Range("A1:A1", "B200:B200")
1 用 ADO Recordset 打开 Excel 数据集。
2 用 GetRows 方法将数据直接赋值给一个数组。Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim DATASOURCE As Variantcn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Book1.xls;" & _
"Extended Properties=""Excel 8.0;"""
rs.Open "Select * from [Sheet1$A1:B200]", cn, adOpenStaticDATASOURCE = rs.GetRows()返回的是一个二维数组,第一下标指示列,第二下标指示行。
再次感谢大家的帮助,谢谢了,没有你们的提示也不会有这么快呀,,呵呵,,