笔者的使用环境是SQL-SERVER2014 和VS2017
首先在SQL-server中建立如下表格
序号 列名1 列名2
001 aa bb
002 bb cc
003 cc aa
以下是word中的VBA代码:
'——————————————————————————————声明公共变量
Public rs As New ADODB.Recordset
Public cnn As New ADODB.Connection
Public SQL As String
Sub test()
Dim arr_ori()
Dim arr_rep()
'——————————————————————————————打开数据库
rs.open("Provider=SQLOLEDB;server=服务器名称;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库")
'——————————————————————————————读取数据库并为数组1赋值
SQL = "SELECT 列名1 FROM 表名 "
Set rs = cnn.Execute(SQL)
arr_ori() = rs.GetRows
'——————————————————————————————读取数据库并为数组2赋值
SQL = "SELECT 列名2 FROM 表名"
Set rs = cnn.Execute(SQL)
arr_rep() = rs.GetRows
'——————————————————————————————将数组1的内容替换为数组2
For i = 1 To UBound(arr_ori, 2)
With Selection.find
.text = Trim(arr_o