VBA专辑之四<<>>
专辑一请戳这里前进专辑二请戳这里前进
专辑三请戳这里前进 这里有个重复累加和的例子:
解决方案①:
Sub wp()
Set Cnn = CreateObject("ADODB.Connection")
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
Sql = "select sum(x.b) from (select distinct a,b from ) x"
Cnn.Execute Sql
Sheets("sheet1").Range("e2").CopyFromRecordset Cnn.Execute(Sql)
Cnn.Close
End Sub
wp231957 发表于 2023-1-13 14:46
这里有个重复累加和的例子:
解决方案①:
2楼的字典解决方案:
Sub wp2()
Set da = CreateObject("scripting.dictionary")
arr = Range("a2:b14")
For i = 1 To UBound(arr) '初始化字典,自动去重
da(arr(i, 1)) = arr(i, 2)
Next
Sum = 0
For Each x In da.keys
Debug.Print x, da(x) '循环遍历字典
Sum = Sum + da(x)
Next
Range("e3").Value = Sum '为个体单元格赋值
End Sub
本帖最后由 wp231957 于 2023-1-13 15:20 编辑
wp231957 发表于 2023-1-13 14:58
2楼的字典解决方案:
'为个体单元格赋值以下几种均可
Range("e3").Value = Sum
Range("e3") = Sum
.Value = Sum
= Sum
备注:这四条语句能够实现相同的目的,最后面一句要简略一些
为区域单元格赋值(这里特指 sql的返回结果集)
这里我们重点关注描红的代码
特点一:区域赋值(特点是一个 X*X 的二维区域 这里的 X包含1)
特点二:这个属于插入赋值,亦即不破坏原始单元格数据
Sub wp()
Set Cnn = CreateObject("ADODB.Connection")
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
Sql = "select * from"
Cnn.Execute Sql
Sheets("sheet1").Range("e2").CopyFromRecordset Cnn.Execute(Sql)
Cnn.Close
End Sub
页:
[1]