VBA 三种遍历

Dim Myarr() As String
Dim sum As Integer
Dim M  As String

Public Sub test()

' 1 遍历Range

M = Cells(2, 5)
For Each R In Range("E3:E8")
    M = M & "," & R.Value
Next

Myarr = Split(M, ",")   ' Split 可以直接产生Arr

MsgBox UBound(Myarr) - LBound(Myarr) + 1   'Arr元素个数

Set d = CreateObject("scripting.dictionary") 
sum = 0
For Each i In Myarr       ‘遍历数组
    If Not d.exists(i) Then d.Add i, ""
Next

 

M = ""
For Each K In d.Keys  '遍历字典
M = M & ";" & K
Next

 

Cells(13, 5) = M


End Sub

VBA (Visual Basic for Applications) 是Excel内置的一种宏语言,可以用于自动化工作流程,包括将数据从Excel转移到SQL Server。以下是使用VBA从Excel遍历数据并存储到SQL Server的基本步骤: 1. **连接到SQL Server**: 首先,你需要在VBA中设置ADODB.Connection对象,通过ODBC数据源连接到SQL Server数据库。 ```vba Dim conn As New ADODB.Connection conn.ConnectionString = "Provider=SQLOLEDB;Data Source=<your_server>;Initial Catalog=<your_database>;User ID=<your_username>;Password=<your_password>" conn.Open ``` 替换`<your_server>`、`<your_database>`、`<your_username>` 和 `<your_password>`为你实际的服务器信息。 2. **创建记录集(Rows集合)**: 获取Excel工作表的数据,通常使用`Range`对象,并将其转换成`ADODB.Recordset`对象。 ```vba Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ' 更改为你需要处理的工作表 Dim dataRange As Range Set dataRange = ws.Range("A1:D10") ' 示例区域,根据实际需要调整 Dim rs As New ADODB.Recordset rs.Open "SELECT * FROM [Sheet1$]", conn, adOpenDynamic, adLockOptimistic rs.AddNew ' 开始添加新记录 ``` 3. **遍历数据并将行插入SQL Server**: 使用`For Each`循环遍历每一行,然后将单元格值作为字段值插入到Recordset。 ```vba For Each cell In dataRange.Cells rs.Fields(cell.Address).Value = cell.Value ' 注意地址可能需要转化为字符串形式 Next cell rs.Update ' 提交当前记录 ``` 4. **处理结束**: 当所有数据都已处理完毕后,记得关闭连接和释放资源。 ```vba rs.Close conn.Close Set rs = Nothing Set conn = Nothing ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值