用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)

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 
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导入数据库时特别慢,怎么样能提高速度?

excel版本越高VBA运行速度越慢,为啥?

vba程序从excel表格读取数据(数据量=2000行),程序运行时特别慢,怎么解决?

excel vba 在sheet多的时候运行特别慢

vba 运算速度慢怎么办?

VBA宏运行速度为啥比Excel自带函数慢