如何学习VBA_3.3.2 SUM作为一般函数及聚合函数的应用

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。

如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了

VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是:如何学习VBA_3.3.2 SUM作为一般函数及聚合函数的应用8dcfb3ba7228bd3c3c0791431646d441.jpeg

【分享成果,随喜正能量】越厉害的人越沉稳低调,越有实力的人越没有架子,心态越平静的人越懂得尊重别人。肯弯下腰的人不一定比你差,而是他的格局比你大,他弯下的是腰,挺直的却是人品。。

3.3.2 SUM作为一般函数及聚合函数的应用

VBA解决方案系列丛书中,我以实际场景模拟的方式讲解如何利用代码提高自己的工作效率,在现实工作中会面临很多实际问题,各种问题如何快速准确的解决是VBA的课题。VBA作为一种寄生语言,在OFFICE应用中起着非常重要的作用。

我们每一次的数据处理其实都是数据的组织和重新结合的过程,我称之为“重组”,这是非常重要的概念,数据重组后可以发现我们需要了解的信息,进而实现管理的优化。这种数据重组过程就是实现数据自动化处理过程。

今日和大家要谈的是在实现数据自动化处理过程中一个常见函数SUM的价值。这个函数在工作表中应用非常广泛,可以说和EXCEL是共生关系,在VBA代码中直接利用或许少些,但在数据库中又体现了自己强大的生命力。

下面我们看看实例:本实例讲解利用了“VBA代码方案之十三:如何利用VBA在单元格中录入公式”的内容及VBA数据库解决方案中聚合函数及工作表连接的相关内容,就不再一一截图说明,今日只是就下面实例内容讲解:

实例,在工作表sheet1中有很多数据,杂乱无章,现在要求出每列数据的和,结果放在第二个工作表中,该如何解决?

5a216c90c74c30a5711df7c64d407290.jpeg

今日我讲解两套方案,让大家看到SUM函数强大的生命力;

方案一:利用工作表函数解决

思路:我们在第二个工作中录入一个工作表函数,这个工作表函数要等于对应的第一个工作表列的总和,问题是如何能自动地计算出第一个工作表中有多少列,以及工作表函数在VBA中如何表示。下面看我给出的代码:

Sub MYNZ()

Sheets("SHEET2").Select

i = 1

k = 1

Range("a2:aa2").ClearContents

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

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变量来自于上面的列的符号提取。

下面看代码的输出:

d12d9616f353162bad817857d9bf7bf0.jpeg

方案二:利用数据库的聚合函数来解决:

思路:利用数据聚合函数SUM来解决,这是数据库方案的内容,思路更加清晰。难点是对数据连接及SQL语句的写法,好在我希望大家能利用我提出的搭积木方法,代码语句尽可能不要去写,而是去复制和修改。

下面看我给出的代码:

Sub MYNZS()

Sheets("SHEET1").Select

Dim cnADO, rsADO, Z As Object

Dim strPath, strTable, strSQL As String

Set cnADO = CreateObject("ADODB.Connection")

strPath = ThisWorkbook.FullName

strTable = "[Sheet1$]"

i = 1

Do While Sheets("SHEET1").Cells(1, i) <> ""

TT = TT & "sum(f" & i & "),"

i = i + 1

Loop

TT = Left(TT, Len(TT) - 1)

'建立连接,提取数据

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath

strSQL = "select " & TT & " from " & strTable

Set Z = cnADO.Execute(strSQL)

Sheets("SHEET2").Select

Range("a5:aa5").ClearContents

[a5].CopyFromRecordset Z

cnADO.Close

Set cnADO = Nothing

End Sub

代码解析:

1上述过程代码看似多些,但其实非常的清晰,利用一个循环完成列数的聚合函数的书写,然后利用SQL语句完成一个查询,直接的输出结果。

2 Do While Sheets("SHEET1").Cells(1, i) <> ""

TT = TT & "sum(f" & i & "),"

i = i + 1

Loop

TT = Left(TT, Len(TT) - 1)

上述代码是完成了聚合函数SUM的书写过程,不清楚的请查阅《VBA数据库解决方案》。

3 cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath

strSQL = "select " & TT & " from " & strTable

Set Z = cnADO.Execute(strSQL)

建立连接实现查询

4 [a5].CopyFromRecordset Z

提出数据。

下面看输出的结果:

c89ba24af60c60d98c7ce7163ecaf165.jpeg

两种方案借助于SUM函数得到了一样的结果,可见,SUM函数在数据的统计中,无论是EXCEL的工作表计算,还是VBA代码的利用,还是数据库的利用,都有着非常方便的实用性,我们要发掘其中的实用方法,好好利用。

备注:《VBA数据库解决方案》是教程的中级部分,此处是帮助初学人员能感受到VBA深入学习后的魅力。

  • SUM函数强大的生命力.xlsm

fe807d9df5487b3dea73787d5e81c3eb.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

7dc840d2ea68c1899a43412992b424db.jpeg


  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gdal-3.3.2-cp37-cp37m-win_amd64.whl 是一个GDAL库的二进制文件,适用于使用Python 3.7版本的Windows 64位操作系统。GDAL是一个开源的地理数据抽象库,它为许多GIS(地理信息系统)应用程序提供了功能强大的地理数据处理能力。 这个特定的文件是用于Windows上的Python环境,具体为64位的操作系统和Python 3.7版本。cp37代表Python 3.7版本,win_amd64代表Windows 64位操作系统。这个二进制文件可以与相应的Python解释器一起使用,以在Windows上进行地理空间数据的处理和分析。 通过将这个.whl文件安装到Python环境中,您可以在您的Python项目中使用GDAL库的功能。GDAL库提供了一些基本和高级的地理数据处理功能,如读取、写入和转换各种地理数据格式,进行投影、分析和空间查询等。 要安装这个.whl文件,您首先需要确保您的系统满足相应的要求,包括64位的Windows操作系统和Python 3.7版本。然后使用pip命令来安装这个.whl文件。打开命令提示符或终端窗口,导航到包含.whl文件的目录,并运行以下命令: pip install gdal-3.3.2-cp37-cp37m-win_amd64.whl 安装完成后,您就可以在Python代码中使用import语句来导入和使用GDAL库的功能了。 总而言之,gdal-3.3.2-cp37-cp37m-win_amd64.whl是一个GDAL库的二进制文件,它适用于使用Python 3.7版本的Windows 64位操作系统,可以通过pip命令安装,并提供了处理地理空间数据的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值