首先说明以下。
       第一: 下面的 “ _" 也就是 空格下划线 在VBA中表示换行的意思;& 表示链接连个字符串的操作,注意 & 的前后是否需要空格
      第二: 如果链接服务器,服务器名称,账号,密码,或者SQL语句有问题,都会报错说自动化错误。
       第三: 如果刚开始运行程序就显示”未定义对象错误“,那么你就需要 VBA界面的”工程--引用“中选择”Micsoft ActiveX data Objects 2.6“ 点击确定。  
 
 1 Sub 下载数据()
 2 
 3 Dim lastRow As Long, lastColumn As Long
 4 lastRow = ActiveSheet.UsedRange.Rows.Count
 5 lastColumn = ActiveSheet.UsedRange.Columns.Count
 6 
 7 'MsgBox Split(Range("A1")(1, lastColumn).Address, "$")(1)
 8 
 9 If lastRow > 2 Then
10     Range("a3:BL999") = "" '仅仅清空内容 
11     Range("bo3:bo999") = ""  'Range("A2:I65536").ClearContents   也可以清楚内容
12    ' ActiveSheet.Rows("3:" & lastRow).Delete 清楚了内容包括格式
13 End If
14 'MsgBox (Cells(10, 1).Value)
15     Dim conn As Object
16     '定义变量
17     Set conn = CreateObject("ADODB.Connection") '建立ADODB连接对象
18     conn.ConnectionString = "Driver={sql server};" _
19                             & "server=你的服务器;" _
20                             & "uid=;pwd=;" _
21                             & "database=你的数据库;" _
22                             & "AutoTranslate=False"
23 conn.Open '打开了和SQL的链接
24 mySql = " SELECT * FROM [dbo].[LEAD] ORDER BY [月],[周]"  '写自己的SQL查询语句
25 Set rsData = New ADODB.Recordset   '定义一个可以保存sql查询的对象集
26 Set rsData = conn.Execute(mySql)   'rsData.Open mySql, conn  可以实现相同的功能
27 'Worksheets("Sheet1").Range("A3").CopyFromRecordset rsData --一次性写入从A3开始的sheet1 工作中
28 Range("A3").CopyFromRecordset rsData '写出到当前激活的sheet中从A3开始
29 rsData.Close   '养成好习惯,用完的东西要关闭哦~~~
30 Set rsData = Nothing
31 conn.Close
32 Set conn = Nothing
33 End Sub
 1 Sub 上传数据()
 2 'MsgBox (Cells(10, 1).Value)
 3     Dim conn As Object
 4     Set conn = CreateObject("ADODB.Connection") '建立ADODB连接对象
 5     
 6     conn.ConnectionString = "Driver={sql server};" _
 7                             & "server=你的服务器;" _
 8                             & "uid=;pwd=;" _
 9                             & "database=你的数据库;" _
10                             & "AutoTranslate=False"
11 Dim Sql1 As String, Sql2 As String
12 conn.Open '打开了和SQL的链接
13 For i = 2 To 30
14         Sql = "INSERT INTO 表([V1],[V2]) VALUES ('" & Cells(i, 1).Value & "','" & Cells(i, 2).Value & "')"
15               '输出一条语句至文件
16     conn.Execute (Sql)  '执行Sql 语句
17 Next
18 
19 '养成好习惯,用完的东西要关闭哦~~~
20 conn.Close
21 Set conn = Nothing
22 End Sub

 

posted on 2016-01-17 11:10  打不死的奥特曼  阅读(3572)  评论(0编辑  收藏  举报