用VBA导入九万多条数据时速度特别慢,求教 代码如下:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用VBA导入九万多条数据时速度特别慢,求教 代码如下:相关的知识,希望对你有一定的参考价值。
For i = 1 To 100000
If Range("A" & i + 2) <> "" Then
count = i
Else
Exit For
End If
Next
Dim conn As Object
Set conn = CreateObject("adodb.connection")
connStr = "Driver=SQL Server;DataBase=compeer;Server= ;UID= ;PWD= "
conn.Open connStr
For i = 2 To count + 1
mebname = Range("A" & i + 1).Value
mebtelno = Range("B" & i + 1).Value
tager = Date
'mebemail = Null
'customerno = Null
'sidd = Null
'mebno = Null
'mebkeyno = Null
Sql = "Insert into blacklist(meb_name,meb_telno,tag) Values('" & mebname & "','" & mebtelno & "','" & tager & "')"
conn.Execute (Sql)
If Range("A" & i + 2) <> "" Then
count = i
Else
Exit For
End If
Next
Dim conn As Object
Set conn = CreateObject("adodb.connection")
connStr = "Driver=SQL Server;DataBase=compeer;Server= ;UID= ;PWD= "
conn.Open connStr
dim arr
arr=range("A3:B" & count+2) '把单元格内容读到数组里,会快一些,其它地方代码不全,暂时没什么建议
For i = 2 To count + 1
mebname =arr(i-1,1)
mebtelno =arr(i-1,2)
tager = Date
'mebemail = Null
'customerno = Null
'sidd = Null
'mebno = Null
'mebkeyno = Null
Sql = "Insert into blacklist(meb_name,meb_telno,tag) Values('" & mebname & "','" & mebtelno & "','" & tager & "')"
conn.Execute (Sql) 参考技术A CreateObject这个应该在循环外初始化。
为啥sql数据库的表用VBA导到EXCEL中的速度比EXCEL的数据导入功能慢
我的代码很简单,就是打开数据库执行某表的复制。一级小白的方法可行,但是不能用到其它人的不同名字的数据库的同一个表格复制,而我现在可以,就是很慢。而且小白一级说的我也不知道怎样编写代码。
在使用excel的时候,能用公式和透视表做的优先使用他们,在他们解决不了的时候,再用 VBA,另外也需要检查你的 VBA,看看执行效率是否过低。 参考技术A 可以使用VBA来操作excel内置的功能啊。
如用VBA控制excel自带的数据导入功能来导数据,即保留了vba的自由型和自动化, 也保留了excel内置功能的速度。本回答被提问者采纳 参考技术B VBA要通过EXCEL来操作,百EXCEL是自己直接操作,你想下哪咱效率高呢? 参考技术C 查询数据库后,VBA中用CopyFromRecordset(RecordSet)方法将记录集复制到Sheet中即可。
以上是关于用VBA导入九万多条数据时速度特别慢,求教 代码如下:的主要内容,如果未能解决你的问题,请参考以下文章
Navicat for MySQL导入数据库时特别慢,怎么样能提高速度?