精华内容
下载资源
问答
  • 目标:让中国大学生走出校门那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其...我们先来看个例子:要求:二办总销量平均销量。按照上一节中思路,我们先把这三列数据读取到一个数组...

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

    前面一节我们学习了如何把Excel中的数据读取到VBA数组中,读取完后,数组中的元素经常会参与一些判断或者运算得到一个新数组,然后写入到Excel中去。

    我们先来看个例子:

    09e65f81d403cf856ae93b92a6531bd7.png

    要求:求二办的总销量和平均销量。

    按照上一节中思路,我们先把这三列数据读取到一个数组中,然后判断办事处是否为二办,如果是,那就计数,销量累加,全部判断结束以后,累加的结果就是总销量,总销量除以计数结果就是平均销量。

    那么我们能不能在判断等于二办之后,把销量的值给读取到一个新的数组里,全部判断完毕,就会得到一个新数组,这个数组的和就是总销量了。

    代码如下:

    Sub test()Dim arr1, arr2(1 To 15), i%, n%arr1 = Range("a2", [c2].End(xlDown))'先把数据读取到数组arr1中去For i = 1 To Range("a2", [c2].End(xlDown)).Rows.Count    If arr1(i, 1) = "二办" Then arr2(i) = arr1(i, 3): n = n + 1    '假如符合条件,就把该数组第三维中对应的元素读取到新的数组arr2中去,同时计数NextMsgBox "二办的总销量为" & WorksheetFunction.Sum(arr2) _                & "二办的平均销量为" & WorksheetFunction.Sum(arr2) / nEnd Sub

    向右滑动可以查看完整代码

    上面这段代码中还有两个以前没提到过的知识点:

    1、If判断语句,如果只有一种情况,那可以写在一行,不用End If 来结束,同时then后,如果有多个需要执行的语句,中间要用冒号隔开。

    2、写代码时如果代码太长了想写到下一行去,先敲空格,在敲下划线,然后回车。

    上面代码中,我们是先声明了一个1 to 15 的数组用于装判断后得到的结果,得到的新数组如下(可通过本地窗口看到):

    3e72114b9327feab8e8f4f89c1dcfc2b.png

    那如何才能让这些数值排列在一起,空值排列在一起呢?

    代码如下:

    Sub test1()Dim arr1, arr2(1 To 15), i%, n%arr1 = Range("a2", [c2].End(xlDown))For i = 1 To Range("a2", [c2].End(xlDown)).Rows.Count    If arr1(i, 1) = "二办" Then n = n + 1: arr2(n) = arr1(i, 3)NextMsgBox "二办的总销量为" & WorksheetFunction.Sum(arr2) _                & Chr(13) & "二办的平均销量为" & WorksheetFunction.Sum(arr2) / nEnd Sub

    向右滑动可以查看完整代码

    这样就可以让数字排列在一起。

    细心的同学会发现两段代码最后MsgBox后跟的代码有区别:

    第一段代码得到的结果是:

    006617a237dd893d7654223c7f1222ba.png

    第二段代码得到的结果是:

    9fd4869393fa2f5bca3baa83210c18c0.png

    所以在VBA中,Chr(13)的作用是换行。

    知识点:

    1、数组的读取。

    2、数组中元素的表示方法。

    3、不是直接以区域的方式赋值给数组时,数组声明需要写明数组的上标的上线、下限。

    4、对于有空值的数组,如何让非空值挨在一起。

    5、代码换行的方法。

    6、输出的内容换行的方法。

    本节的分享就到这里,鹏哥祝大家每天都有进步。

    从基础操作到VBA,

    两杯咖啡的钱,

    换取一份如此详细的Excel视频资料,

    你还在犹豫?

    欲购从速,联系微信号:527240310

    非诚勿扰!

    每天进步一点,每天提升一点!

    展开全文
  • 大家好,今日继续大家分享VBA编程中常用的常用“积木”过程代码。这些内容大多是我的经验的记录,来源于我多年的经验。今日分享的是NO.223-NO.224,内容是:NO. 223:计算数组的上标下标及元素的个数值NO. 224:...

    9572ef2230b883a95fabb091ade5e1ea.png

    大家好,今日继续和大家分享VBA编程中常用的常用“积木”过程代码。这些内容大多是我的经验的记录,来源于我多年的经验。今日分享的是NO.223-NO.224,内容是:

    NO. 223:计算数组的上标下标及元素的个数值

    NO. 224:数组函数JOIN的作用

    e9f743b6cc8d6a3835ba7ccd3f951cec.png

    VBA过程代码223:计算数组的上标下标及元素的个数值

     Sub Mynz ()

    Dim arr(10 To 50)

    Dim brr(1 To 10, 1 To 100)

    MsgBox "第一个一维数组数组的上标是:" & UBound(arr) & Chr(13) _

    & "数组的下标是:" & LBound(arr) & Chr(13) _

    & "数组的元素个数是:" & UBound(arr) - LBound(arr) + 1 & Chr(13) _

    & "第二个两维数组第一维的上界是:" & UBound(brr, 1) & Chr(13) _

    & "第二维的上界是:" & UBound(brr, 2)

    End Sub

    代码解析:mynz过程将一维数组arr和二维数组brr的上下标计算出来,将一维数组的元素个数计算出来提供给用户。上下标是通过Ubound函数及Lbound的函数来实现的。元素个数是: UBound(arr) - LBound(arr) + 1

    e84326044f04ed25f651d8f22f37e75c.png

    VBA过程代码224:数组函数JOIN的作用

    Sub Mynz ()

    Dim arr(1 To 10), i As Integer, txt As String

    For i = 1 To 10 '给数组赋值

    arr(i) = i

    Next i

    txt = Join(arr, ",") '将arr数组的元素连成字符串,用逗号作分隔符

    MsgBox txt

    End Sub

    代码解析:mynz过程利用Join函数将数组的值以指定字符连接,形成一个字符串。首先给数组arr进行赋值,赋值为1到10的自然数。然后利用Join函数将数组的值以指定字符","连接,连接后将最后的字符串赋值给txt,最后用MsgBox对话框显示给用户

    30c341a6f0ed49e86af58aa688efaa5f.png

    VBA是利用OFFICE实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,总结了四部VBA学习资料,是我“积木编程”思想的体现。

    第一:VBA代码解决方案,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点;

    第二:VBA数据库解决方案,是数据处理的专业利器,介绍利用ADO连接ACCDB,EXCEL。

    第三:VBA数组与字典解决方案,讲解VBA中的数组和字典的利用。

    第四:VBA代码解决方案之视频,是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

    VBA真的非常实用,希望大家掌握这个工具,利用这个工具,让自己在工作中轻松,高效,快乐。

    展开全文
  • 目标:让中国大学生走出校门那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其...我们先来看个例子:要求:二办总销量平均销量。按照上一节中思路,我们先把这三列数据读取到一个数组...

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

    前面一节我们学习了如何把Excel中的数据读取到VBA数组中,读取完后,数组中的元素经常会参与一些判断或者运算得到一个新数组,然后写入到Excel中去。

    我们先来看个例子:

    8b5b4fb63dc5cb9bf8820a45938d6503.png

    要求:求二办的总销量和平均销量。

    按照上一节中思路,我们先把这三列数据读取到一个数组中,然后判断办事处是否为二办,如果是,那就计数,销量累加,全部判断结束以后,累加的结果就是总销量,总销量除以计数结果就是平均销量。

    那么我们能不能在判断等于二办之后,把销量的值给读取到一个新的数组里,全部判断完毕,就会得到一个新数组,这个数组的和就是总销量了。

    代码如下:

    Sub test()Dim arr1, arr2(1 To 15), i%, n%arr1 = Range("a2", [c2].End(xlDown))'先把数据读取到数组arr1中去For i = 1 To Range("a2", [c2].End(xlDown)).Rows.Count    If arr1(i, 1) = "二办" Then arr2(i) = arr1(i, 3): n = n + 1    '假如符合条件,就把该数组第三维中对应的元素读取到新的数组arr2中去,同时计数NextMsgBox "二办的总销量为" & WorksheetFunction.Sum(arr2) _                & "二办的平均销量为" & WorksheetFunction.Sum(arr2) / nEnd Sub

    向右滑动可以查看完整代码

    上面这段代码中还有两个以前没提到过的知识点:

    1、If判断语句,如果只有一种情况,那可以写在一行,不用End If 来结束,同时then后,如果有多个需要执行的语句,中间要用冒号隔开。

    2、写代码时如果代码太长了想写到下一行去,先敲空格,在敲下划线,然后回车。

    上面代码中,我们是先声明了一个1 to 15 的数组用于装判断后得到的结果,得到的新数组如下(可通过本地窗口看到):

    a82e6061d389516c1772bbaefbc7488b.png

    那如何才能让这些数值排列在一起,空值排列在一起呢?

    代码如下:

    Sub test1()Dim arr1, arr2(1 To 15), i%, n%arr1 = Range("a2", [c2].End(xlDown))For i = 1 To Range("a2", [c2].End(xlDown)).Rows.Count    If arr1(i, 1) = "二办" Then n = n + 1: arr2(n) = arr1(i, 3)NextMsgBox "二办的总销量为" & WorksheetFunction.Sum(arr2) _                & Chr(13) & "二办的平均销量为" & WorksheetFunction.Sum(arr2) / nEnd Sub

    向右滑动可以查看完整代码

    这样就可以让数字排列在一起。

    细心的同学会发现两段代码最后MsgBox后跟的代码有区别:

    第一段代码得到的结果是:

    a6b544b3d772110d544f42242bac9ecc.png

    第二段代码得到的结果是:

    802a9753f7dd76f4589509403b8c2600.png

    所以在VBA中,Chr(13)的作用是换行。

    知识点:

    1、数组的读取。

    2、数组中元素的表示方法。

    3、不是直接以区域的方式赋值给数组时,数组声明需要写明数组的上标的上线、下限。

    4、对于有空值的数组,如何让非空值挨在一起。

    5、代码换行的方法。

    6、输出的内容换行的方法。

    本节的分享就到这里,鹏哥祝大家每天都有进步。

    从基础操作到VBA,

    两杯咖啡的钱,

    换取一份如此详细的Excel视频资料,

    你还在犹豫?

    欲购从速,联系微信号:527240310

    非诚勿扰!

    每天进步一点,每天提升一点!

    展开全文
  • 大家好,今日内容仍是大家分享VBA编程中常用简单“积木”过程代码,这些内容大多是取至我编写VBA代码解决方案”教程中内容。NO.168-NO.169内容是:NO. 172:如何利用VBA代码,四舍五入值NO. 如何利用VBA...

    2a0c562194d1095ea00e324631d6c195.png

    分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.168-NO.169内容是:

    NO. 172:如何利用VBA代码,求四舍五入的值

    NO. 如何利用VBA代码,判断是否为数值

    6ce7ed992e8c4a4d4638636619eac80c.png

    VBA过程代码172:如何利用VBA代码,求四舍五入的值

    Sub mynz()

    MsgBox "VBA:Round(4.5)=" & Round(4.5) & Chr(13) & "EXCEL:Round(4.5)=" _

    & Application.Round(4.5, 0) & Chr(13) & "VBA修正:Round(4.5)=" & Round(4.500001)

    End Sub

    代码的解析说明:Mynz过程分别调用VBA内置的Round函数和工作表Round函数在消息框中显示两者运算结果 .

    be7216fbc1eb89719a8c518eeb578e16.png

    VBA过程代码173:如何利用VBA代码,判断是否为数值

    Sub mynz()

    Dim i As Integer

    Dim n As String

    Dim s As String

    With Sheets("55")

    For i = 1 To .Range("A65536").End(xlUp).Row

    If IsNumeric(.Cells(i, 1)) Then

    n = n & .Cells(i, 1).Address(0, 0) & Chr(9) & .Cells(i, 1) & Chr(13)

    Else

    s = s & .Cells(i, 1).Address(0, 0) & Chr(9) & .Cells(i, 1) & Chr(13)

    End If

    Next

    End With

    MsgBox "A列中数值单元格:" & Chr(13) & n & Chr(13) _

    & "A列中非数值单元格:" & Chr(13) & s

    End Sub

    代码的解析说明:Mynz过程使用IsNumeric函数判断工作表的A列单元格是否为数值,并使用消息框显示。代码将数值单元格的地址和数值保存在变量 e中。将非数值单元格的地址和内容保存在变量 s中。在保存时插入制表符对数据列进行分隔,使之排列整齐.

    b65e570dddc38af2e3b568e8e667cbdd.png

    VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第三册的99讲。

    展开全文
  • 大家好,今日继续大家分享VBA编程中常用的常用“积木”过程代码。这些内容大多是我的经验的记录,来源于我多年的经验。今日分享的是NO.223-NO.224,内容是:NO. 223:计算数组的上标下标及元素的个数值NO. 224:...
  • 大家好,今日继续大家分享VBA编程中常用的常用"积木"过程代码。... 224:数组函数JOIN的作用VBA过程代码223:计算数组的上标下标及元素的个数值 Sub Mynz ()Dim arr(10 To 50)Dim brr(1 To 10, 1 ...
  • 昨天我们讲了一个数组的应用案例:《Excel VBA数组的应用案例》案例如下:要求:二办的总销量平均销量。代码如下:Sub test()Dim arr1, arr2(1 To 15), i%, n%arr1 = Range("a2", [c2].E...
  • 昨天我们讲了一个数组的应用案例:《Excel VBA数组的应用案例》案例如下:要求:二办的总销量平均销量。代码如下:Sub test()Dim arr1, arr2(1 To 15), i%, n%arr1 = Range("a2", [c2]....
  • 数组的时间节省原理 1 VBA就是寄生在excel里的,excel存储的主要就是数据 2 如果先把excel的数据读到arry里,然后VBA操作array会更快 比VBA多次去EXCEL里取数据要快很多。 3 所以学VBA,要先学会把EXCEL数据导入...
  • 大家好,今日内容仍是大家分享VBA编程中常用简单“积木”过程代码,这些内容大多是取至我编写VBA代码解决方案”教程中内容。NO.168-NO.169内容是:NO. 170:如何利用VBA代码,限制重复值录入NO. 171:如何...
  • VBA数组与字典解决方案第7讲:为什么要采用数组公式(一)今日继续讲解VBA数组与字典解决方案第7讲,在前几讲的数组应用中...首先我们回忆一下小时候上学时有过这么一道题:1 到100 的和。当然也可以是1000、10...
  • 结合下图,如何用数组同行单元格的和?答:代码及运行结果如下: 72. 结合下图,如何用数组[A1:K1]中数字单元格个数和非空单元格个数? 答:代码及运行结果如下:非空单元格统计如下:注意:这个结果与工作...
  • 大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第68讲内容:利用字典动态数组,找出多列数据中重复值。利用字典多列间重复数据,我们在工作时也会遇到类似问题,对于这种问题解决如果不用VBA...
  • 大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第68讲内容:利用字典动态数组,找出多列数据中重复值。利用字典多列间重复数据,我们在工作时也会遇到类似问题,对于这种问题解决如果不用VBA...
  • Excel VBA编程

    万次阅读 多人点赞 2019-04-11 16:45:51
    文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引...
  • 问题是这样的 IDE:visual c++ 2013 community excel:2010 目的:编写excel dll 目前阶段:实现了在excel中单元格输入,单元格...要得到这个数组的数据的加要怎么做? 有可能输出为数组吗? 新手菜鸟大神指点。
  • 已知一点,另一点相对于该点极角(弧度)极轴长度,另一点位置 两点法绘制圆、三点法绘制圆 绘制椭圆、椭圆弧中心线 绘制面域中心线 交换两个数组变量 给任用一个实体绘制边框 将三个变量转换成一个点...
  • excel使用

    2012-11-25 17:06:01
    再比如,公式: =if(SUM(A1:A5>0,SUM(A1:A5),0) 此式就利用了嵌套函数,意思是,当A1至A5的和大于0时,返回这个值,如果小于0,那么就返回0。 还有一点要提醒你注意:以上的符号均为半角,而且IF与括号之间...
  • 我在CSDN参与3000个帖子

    万次阅读 热门讨论 2006-11-17 16:42:00
    2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我网站,本站提供大量当今流行免费音乐免费电影,...
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的值。 Execute 方法 根据指定的字符串,执行正则表达式的搜索。 Execute...
  • vb Script参考文档

    2009-07-28 22:13:02
    Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的值。 Execute 方法 根据指定的字符串,执行正则表达式的搜索。 Execute...
  • VBSCRIP5 -ASP用法详解

    2010-09-23 17:15:46
    Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的值。 Execute 方法 根据指定的字符串,执行正则表达式的搜索。 Execute...
  • Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的值。 Execute 方法 根据指定的字符串,执行正则表达式的搜索。 Execute...
  • VBScript 语言参考

    2008-10-07 21:30:05
    Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的值。 Execute 方法 根据指定的字符串,执行正则表达式的搜索。 Execute...
  • • 两个一维数组的连接运算 • 使用两个一维数组构造二维数组 • 部门评价等级转换 • 使用MMULT 函数计算产品结构指数 • 产生1-10 的自然数垂直序列水平序列 • 等比例构造一维循环数组 • SUMIF函数对产品产量...
  • 7.5.3 n个最大值的和 7.5.4 使用单个条件求和 7.5.5 只对负值求和 7.5.6 根据范围Difference的值求和 7.5.7 基于文本的比较结果求和 7.5.8 基于日期的比较结果求和  7.6 使用多重条件求和 7.6.1 使用AND...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

vba求数组的和