永康门业微网站建设,网站图片的像素,如何做网站美工,安卓手机建设网站【分享成果#xff0c;随喜正能量】我们很多道友没受过什么苦#xff0c;或受不了一句话、一点气#xff0c;总想悠悠自在成佛。或是念上几十部经就想换取什么#xff0c;法宝是无价的#xff01;你拿有价来换#xff0c;不但换不到#xff0c;还丧失了功德。应当不退初…【分享成果随喜正能量】我们很多道友没受过什么苦或受不了一句话、一点气总想悠悠自在成佛。或是念上几十部经就想换取什么法宝是无价的你拿有价来换不但换不到还丧失了功德。应当不退初心遇到恶缘把它看作考验你能不能定得住? 人身难得佛法难闻百念千生要坚固自己的信愿力莫退信心。。
我给VBA的定义VBA是个人小型自动化处理的有效工具。利用好了可以大大提高自己的劳动效率而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册现在已经全部完成希望大家利用、学习。
如果您只是一般的职场VBA需求可以打包选择7.1.3.9教程汉英手册第7套教程是入门第1套教程是入门后的提高第3套教程字典是必备的VBA之精华第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题实际写代码的时候再辅助代码汉英手册足矣如果您想进一步提高就需要选择高级阶段的教程了。
VBA是面向对象编程的语言博大精深。很多朋友咨询VBA的学习方法我会陆续给大家讲解一些我的经验大家可以慢慢体会。今日的内容是3.3.2:SUM作为一般函数及聚合函数的应用
3.3 学习提高过程中的思考贯彻我的编程思想
在学习过程中我们要同时思考几个问题这也是我们学习过程中的提高。
3.3.2:SUM作为一般函数及聚合函数的应用
VBA解决方案系列丛书中我以实际场景模拟的方式讲解如何利用代码提高自己的工作效率,在现实工作中会面临很多实际问题,各种问题如何快速准确的解决是VBA的课题。VBA作为一种寄生语言,在OFFICE应用中起着非常重要的作用。
我们每一次的数据处理其实都是数据的组织和重新结合的过程我称之为“重组”,这是非常重要的概念数据重组后可以发现我们需要了解的信息进而实现管理的优化。这种数据重组过程就是实现数据自动化处理过程。
今日和大家要谈的是在实现数据自动化处理过程中一个常见函数SUM的价值。这个函数在工作表中应用非常广泛可以说和EXCEL是共生关系在VBA代码中直接利用或许少些但在数据库中又体现了自己强大的生命力。
下面我们看看实例本实例讲解利用了“VBA代码方案之十三如何利用VBA在单元格中录入公式”的内容及VBA数据库解决方案中聚合函数及工作表连接的相关内容就不再一一截图说明今日只是就下面实例内容讲解
实例在工作表sheet1中有很多数据杂乱无章现在要求出每列数据的和结果放在第二个工作表中该如何解决 今日我讲解两套方案让大家看到SUM函数强大的生命力
方案一利用工作表函数解决
思路我们在第二个工作中录入一个工作表函数这个工作表函数要等于对应的第一个工作表列的总和问题是如何能自动地计算出第一个工作表中有多少列以及工作表函数在VBA中如何表示。下面看我给出的代码 Sub MYNZ()
nbsp;nbsp;nbsp;nbsp;Sheets(SHEET2).Select
nbsp;nbsp;nbsp;nbsp;i 1
nbsp;nbsp;nbsp;nbsp;k 1
nbsp;nbsp;nbsp;nbsp;Range(a2:aa2).ClearContents
nbsp;nbsp;nbsp;nbsp;Do While Sheets(SHEET1).Cells(1, i)
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;LL Sheets(SHEET1).Cells(1, i).Address
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;TT Mid(LL, 2, Application.WorksheetFunction.Find($, LL, 2) - 2)
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;TT TT : TT
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Cells(2, k).Formula SUM(Sheet1! TT )
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i i 1
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;k k 1
nbsp;nbsp;nbsp;nbsp;Loop
End Sub 代码解析
1 上述代码实现了用VBA录入公式的方法这个方法在《VBA代码解决方案》中有讲解了。
2 Do While Sheets(SHEET1).Cells(1, i)
LL Sheets(SHEET1).Cells(1, i).Address
TT Mid(LL, 2, Application.WorksheetFunction.Find($, LL, 2) - 2)
TT TT : TT
Cells(2, k).Formula SUM(Sheet1! TT )
i i 1
k k 1
Loop
上述的循环语句实现了在第二个工作表中录入工作表函数的方法。其中LL Sheets(SHEET1).Cells(1, i).Address 将获取单元格的地址此地址是$a$1的格式。我们要从中提取出列的符号。
3 Cells(2, k).Formula SUM(Sheet1! TT )
上述代码实现了公式的录入。此处的TT变量来自于上面的列的符号提取。 下面看代码的输出 方案二利用数据库的聚合函数来解决 思路利用数据聚合函数SUM来解决这是数据库方案的内容思路更加清晰。难点是对数据连接及SQL语句的写法好在我希望大家能利用我提出的搭积木方法代码语句尽可能不要去写而是去复制和修改。 下面看我给出的代码
Sub MYNZS()
nbsp;nbsp;nbsp;nbsp;Sheets(SHEET1).Select
nbsp;nbsp;nbsp;nbsp;Dim cnADO, rsADO, Z As Object
nbsp;nbsp;nbsp;nbsp;Dim strPath, strTable, strSQL As String
nbsp;nbsp;nbsp;nbsp;Set cnADO CreateObject(ADODB.Connection)
nbsp;nbsp;nbsp;nbsp;strPath ThisWorkbook.FullName
nbsp;nbsp;nbsp;nbsp;strTable [Sheet1$]
nbsp;nbsp;nbsp;nbsp;i 1
nbsp;nbsp;nbsp;nbsp;Do While Sheets(SHEET1).Cells(1, i)
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;TT TT sum(f i ),
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i i 1
nbsp;nbsp;nbsp;nbsp;Loop
nbsp;nbsp;nbsp;nbsp;TT Left(TT, Len(TT) - 1)
nbsp;nbsp;nbsp;nbsp;建立连接,提取数据
nbsp;nbsp;nbsp;nbsp;cnADO.Open providerMicrosoft.ACE.OLEDB.12.0;extended propertiesexcel 8.0;hdrno;imex1;data source strPath
nbsp;nbsp;nbsp;nbsp;strSQL select TT from strTable
nbsp;nbsp;nbsp;nbsp;Set Z cnADO.Execute(strSQL)
nbsp;nbsp;nbsp;nbsp;Sheets(SHEET2).Select
nbsp;nbsp;nbsp;nbsp;Range(a5:aa5).ClearContents
nbsp;nbsp;nbsp;nbsp;[a5].CopyFromRecordset Z
nbsp;nbsp;nbsp;nbsp;cnADO.Close
nbsp;nbsp;nbsp;nbsp;Set cnADO Nothing
End Sub 代码解析
1上述过程代码看似多些但其实非常的清晰利用一个循环完成列数的聚合函数的书写然后利用SQL语句完成一个查询直接的输出结果。
2 nbsp;Do While Sheets(SHEET1).Cells(1, i)
nbsp;nbsp;nbsp;nbsp;nbsp;TT TT sum(f i ),
nbsp;nbsp;nbsp;nbsp;nbsp;i i 1
nbsp;nbsp;nbsp;nbsp;Loop
nbsp;nbsp;nbsp;nbsp;TT Left(TT, Len(TT) - 1)
上述代码是完成了聚合函数SUM的书写过程不清楚的请查阅《VBA数据库解决方案》。
3 cnADO.Open providerMicrosoft.ACE.OLEDB.12.0;extended propertiesexcel 8.0;hdrno;imex1;data source strPath
nbsp;nbsp;nbsp;strSQL select TT from strTable
nbsp;nbsp;nbsp;Set Z cnADO.Execute(strSQL)
建立连接实现查询
4 nbsp;[a5].CopyFromRecordset Z
提出数据。 下面看输出的结果 两种方案借助于SUM函数得到了一样的结果可见SUM函数在数据的统计中无论是EXCEL的工作表计算还是VBA代码的利用还是数据库的利用都有着非常方便的实用性我们要发掘其中的实用方法好好利用。
备注《VBA数据库解决方案》是教程的中级部分此处是帮助初学人员能感受到VBA深入学习后的魅力。 ØSUM函数强大的生命力.xlsm 我20多年的VBA实践经验全部浓缩在下面的各个教程中