Sub ToSQLServer()
Dim value1 As String
Dim value2 As String
Dim value3 As String
Dim value4 As String
Dim value5 As String
Dim value6 As String
Dim value7 As String
Dim value8 As String
Dim value9 As String
Dim value10 As String
Dim value11 As String
Dim value12 As String
Dim value13 As String
Dim value14 As String
Dim value15 As String
Dim value16 As String
Dim value17 As StringDim i As Integer
i = 4
'建立数据库连接
Set cnn = CreateObject("ADODB.connection")
cnn.Connectionstring = "Driver={SQL Server};Server=127.0.0.1;database=test;uid=sa;pwd="
cnn.Open
'取得结果集并导入数据
Set rs = CreateObject("ADODB.recordset")
For i = 4 To 3000
    value1 = ActiveSheet.Cells(i, 1).Value
    value2 = ActiveSheet.Cells(i, 2).Value
    value3 = ActiveSheet.Cells(i, 3).Value
    value4 = ActiveSheet.Cells(i, 4).Value
    value5 = ActiveSheet.Cells(i, 5).Value
    value6 = ActiveSheet.Cells(i, 6).Value
    value7 = ActiveSheet.Cells(i, 7).Value
    value8 = ActiveSheet.Cells(i, 8).Value
    value9 = ActiveSheet.Cells(i, 9).Value
    value10 = ActiveSheet.Cells(i, 10).Value
    value11 = ActiveSheet.Cells(i, 11).Value
    value12 = ActiveSheet.Cells(i, 12).Value
    value13 = ActiveSheet.Cells(i, 13).Value
    value14 = ActiveSheet.Cells(i, 14).Value
    value15 = ActiveSheet.Cells(i, 15).Value
    value16 = ActiveSheet.Cells(i, 16).Value
    value17 = ActiveSheet.Cells(i, 17).Value    If (value1 <> "" And value11 = "√") Then
        rs.Open "insert into table1(col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col12, col13, col14, col15, col16, col17) values('" & value1 & "','" & value2 & "','" & value3 & "','" & value4 & "','" & value5 & "','" & value6 & "','" & value7 & "','" & value8 & "','" & value9 & "','" & value10 & "','" & value12 & "','" & value13 & "','" & value14 & "','" & value15 & "','" & value16 & "','" & value17 & "')", cnn, 0
    Else: If value1 = "" Then Exit For
    End If
    i = i + 1
Next
cnn.Close
Set cnn = Nothing
Set rs = Nothing
MsgBox "数据记录导入成功!"
End Sub----------
运行时提示自动化错误。
刚接触VBA,不明白什么意思,请高手指点。
谢谢。
另外,请问如何声明数值型变量?我是这样写的:Dim aaa as Decimal 有错误

解决方案 »

  1.   

    value1 = ActiveSheet.Cells(i, 1).Value
    -------------------------------------------------
    ActiveSheet不具体,改为用具体的对象来操作试试:Dim xlApp As New Excel.Application '假设你的EXCEL对象是这样定义的
    value1 = xlApp.Sheets("Sheet1").Cells(i, 1).Value另外,请问如何声明数值型变量?我是这样写的:Dim aaa as Decimal 有错误
    --------------------------------------
    因为没有Decimal类型数据,所以那样定义会有错误,数值类型一般有Double,Single, Currency,Long,Integer等,具体的数值范围请查MSDN