鱼C论坛

 找回密码
 立即注册
查看: 3900|回复: 3

[学习笔记] VBA专辑之四<<>>

[复制链接]
发表于 2023-1-13 14:38:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
专辑一请戳这里前进
专辑二请戳这里前进
专辑三请戳这里前进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-13 14:46:10 | 显示全部楼层
这里有个重复累加和的例子:

解决方案①:
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 [sheet1$]) x"
   Cnn.Execute Sql
   Sheets("sheet1").Range("e2").CopyFromRecordset Cnn.Execute(Sql)
   Cnn.Close
End Sub
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-13 14:58:42 | 显示全部楼层
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-13 15:06:41 | 显示全部楼层
本帖最后由 wp231957 于 2023-1-13 15:20 编辑
wp231957 发表于 2023-1-13 14:58
2楼的字典解决方案:


'为个体单元格赋值  以下几种均可

Range("e3").Value = Sum
Range("e3") = Sum
[e4].Value = Sum
[e5] = 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  [sheet1$]"
   Cnn.Execute Sql
   Sheets("sheet1").Range("e2").CopyFromRecordset Cnn.Execute(Sql)
   Cnn.Close
End Sub
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 22:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表