下面这串代码 是将excel中的数据读入到VB的MSFlexGrid1控件中 能提高点效率吗?

代码如下,这样读取速率很慢,有么有什么方法能提高速度?因为excel中的数据就那么几行,但这串代码是读取了excel表的所有数据(包括空白单元格求解答)PrivateSu... 代码如下 ,这样读取速率很慢,有么有什么方法能提高速度?因为excel中的数据就那么几行,但这串代码是读取了excel表的所有数据(包括空白单元格 求解答)
Private Sub SJDY()
Dim i, j As Integer
Dim ExcelApp As Excel.Application
Dim ExcelBook As Excel.Workbook
Dim ExcelSheet As Excel.Worksheet
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = False
Set ExcelBook = ExcelApp.Workbooks.Open(App.Path & "\外购入库.xlsx")
Set ExcelSheet = ExcelApp.Worksheets(2)
With MSFlexGrid1
.Cols = ActiveSheet.UsedRange.Count
.Rows = ActiveSheet.UsedRange.Count
For i = 1 To .Cols - 1
For j = 1 To .Rows - 1
.TextMatrix(j - 1, i) = ExcelApp.Sheets(2).Cells(j, i)
Next j
Next i
End With
ExcelBook.Close (True)
ExcelApp.Quit
Set ExcelApp = Nothing
End Sub
展开
 我来答
百度网友8c7e6ee9f
2014-12-17 · TA获得超过286个赞
知道小有建树答主
回答量:426
采纳率:40%
帮助的人:107万
展开全部

不要读excel ,直接把excel的数据导入access,可参考以下:

Private Sub Command1_Click()
  Dim db As Database
  Dim sheet As String, excelpath As String, AccessPath As String, AccessTable As String
  AccessPath = Text2.Text                                    '数据库路径
  excelpath = Text1.Text                                     '电子表格路经
  AccessTable = Text4.Text                                   '数据库内表格
  sheet = Text3.Text                                         '电子表格内工作表
  Set db = OpenDatabase(excelpath, True, False, "Excel 5.0") '打开电子表格文件
  SQL = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "$]")
  db.Execute (SQL)                                          '将电子表格导入数据库
  Data1.RecordSource = "sheet1"
  Data1.Refresh
  DBGrid1.Refresh                                           '显示电子表格导入到数据库的数据
End Sub
更多追问追答
追问
我的要求是要从Excel中导入 把它做为数据库的啊
追答
你的代码是把excel一个单元格一个单元格的读入,我提供参考的是整个表直接导入到数据库中,然后显示出来。
MR__J_A_Y_
2014-12-17 · TA获得超过637个赞
知道小有建树答主
回答量:747
采纳率:50%
帮助的人:286万
展开全部
加一个Application.ScreenUpdate = False
不要用With,不要在前台打开Excel,for循环直接写Next,把后面的i删掉。。。。还有好多地方可以优化。。。。。。
追问
还能具体点吗?谢谢
追答
不要用Workbook.Open,用GetObject,
Dim ExcelApp As Excel.Application
不要用这个方法,相当于你先创建了一个Excel又销毁了,这属于无用功。。。。With在数据量大的时候,这么写会影响一些速度,但是不大。主要的建议就是
加一个Application.ScreenUpdate = False,不要用ExcelApp As Excel.Application
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式