百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

excel vbnet处理实例(金额均分求和,采用字典累加)

yuyutoo 2024-10-12 01:34 2 浏览 0 评论


日期

工作类型

送货金额

人员姓名

2021.8.1

送货

35000

张三,李四,王二,小王

2021.8.2

送货

35001

张三,李四,王二

2021.8.3

送货

35002

张三,李四

2021.8.4

送货

35003

张三

2021.8.5

送货

35004

张三,李四,王二,小王

2021.8.6

送货

35005

张三,李四,王二,小王

2021.8.7

送货

35006

张三,李四

2021.8.8

送货

35007

张三,李四

2021.8.9

送货

35008

张三

2021.8.10

送货

35009

张三,李四,王二

任务要求:快速汇总每一位送货人员的送货金额。注意:送货金额依据人员系数进行平分。要求求得每个人的送货金额数

Dim ws = (New excel).activesheet
        Dim arr = ws.CurrentRegion(3, "A").value
‘arr获取到A3区域,注意包含标题头
        Dim sz() As String
        Dim qian As Single‘定义钱数,考虑到钱有小数,使用single,不能使用整数
        ’定义一个字典,键为string类型存储姓名,值为钱数,使用single浮点数
        Dim dict As New Dictionary(Of String, Single)
        Dim r As Integer
        ’从第2行开始(除开标题)进入主循环
        For r = 2 To UBound(arr)
            sz = arr(r, 4).ToString.Split(",")‘对第4列名单拆解成数组sz
            qian = Val(arr(r, 3)) / sz.Length '钱数平分,Val(arr(r, 3))表示总钱数,sz.Length表示名单个数

            For i = 0 To UBound(sz)
                If Not dict.ContainsKey(sz(i)) Then ‘’对名单中每个姓名进行查找,如果在字典中没找到
                    dict.Add(sz(i), qian)’ 就直接添加
                Else
                    dict(sz(i)) = dict(sz(i)) + qian  如果找到就累加到值
                End If
            Next
        Next

        '输出到listbox查看
        r = 4
        For Each d In dict
            ListBox1.Items.Add(d.Key + "  " + CStr(d.Value))
  ‘这行是输出到界面方便中期调试使用,如果正确再输出到表格
            '输出到表格F G列中
            ws.Setcell(r, "F", d.Key)
            ws.Setcell(r, "G", d.Value)
            r = r + 1
        Next


        'Me.Text = CStr(UBound(arr, 1)) + "  " + CStr(UBound(arr, 2))
    End Sub

知识要点:

字典是一个键-值对,一个键对应一个值。

键1  => 值1
键2  => 值2
键3  => 值4
.....
键n  => 值n
’定义一个字典,键为string类型存储姓名,值为钱数,使用single浮点数
        Dim dict As New Dictionary(Of String, Single)
If Not dict.ContainsKey(sz(i)) Then ‘’对名单中每个姓名进行查找,如果在字典中没找到
                    dict.Add(sz(i), qian)’ 就直接添加
                Else
                    dict(sz(i)) = dict(sz(i)) + qian  如果找到就累加到值
                End If

ContainsKey是查找是否包括键,

dict(sz(i))获得字典值,dict(sz(i)) = dict(sz(i)) + qian直接在值上累加钱。

相关推荐

jQuery VS AngularJS 你更钟爱哪个?

在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...

Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0

在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...

如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例

要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...

编程技巧:Jquery实时验证,指定长度的「负小数」

为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

编程技巧:Jquery实时验证,指定长度的「正小数」

为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...

jquery.validate检查数组全部验证

问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...

Vue进阶(幺叁肆):npm查看包版本信息

第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...

layui中使用lay-verify进行条件校验

一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...

jQuery是什么?如何使用? jquery是什么功能组件

jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...

django框架的表单form的理解和用法-9

表单呈现...

jquery对上传文件的检测判断 jquery实现文件上传

总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...

Nodejs之MEAN栈开发(四)-- form验证及图片上传

这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...

大数据开发基础之JAVA jquery 大数据java实战

上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...

推荐四个开源的jQuery可视化表单设计器

jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...

取消回复欢迎 发表评论: