vba 自动排序_给VBA字典键值排序,并提取需要的数据

0f9257393fcd14daca33f9c0ab58a8ef.png

未知的领域很广、风景很美,不要蜷缩在一小块自认为天堂的世界里。待到暮年时安于自欺欺人,要努力提高自己,学习是一件很辛苦的事。要有一颗充满生机的心,把握现在,这才是进取。机会总在等待中出现,越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。寻找心灵的平静;不管遇到什么,都是风景。怀善心,做善事。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。把浮躁的心静下来,去感悟真实的时间,静下心,多学习,积累福报。保持快乐的心态,坚定且执着。学习有用的知识,经营自己,而不是天天混日子,也不是天天熬日子。为后疫情时代做知识的储备。在今后更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。

在取代OFFICE新的办公软件没有到来之前,谁能数据处理做到最为极致,谁就是王者。其中登峰至极的技能非VBA莫属!

今日继续和大家分享VBA编程中常用的常用“积木”过程代码。这些内容大多是我的经验的记录,来源于我多年的经验。最近代码多是出自”VBA数组与字典解决方案”教程,有一些朋友反映分享的内容不能很好的理解,可以参考这套资料的内容进行研读。今日分享的是第288期。

38dc90210a3e4c46bf0305f55ebdaa25.png

VBA过程代码288:利用工作表函数,对字典的键值按大小排序,并给出对应的键

Sub MyNZ ()

Dim ran

Sheets("60").Select

Set mydic = CreateObject("Scripting.Dictionary") '字典

TT = Cells(Rows.Count, 1).End(xlUp).Row

For Each ran In Sheets("60").Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row)

If ran.Value <> "" Then

If Not mydic.exists(ran.Value) Then

mydic.Add ran.Value, 1 '需要注意此处要加VALUE

Else

mydic(ran.Value) = mydic(ran.Value) + 1

End If

End If

Next

'注意此处把字典的键和键值取出

K = mydic.keys: T = mydic.items

ReDim X(1 To mydic.Count, 1 To 2)

For i = 1 To mydic.Count

X(i, 1) = Application.Large(K, i) '按最大值的先后将数据放到数组中

X(i, 2) = mydic(X(i, 1)) '提取相应的键值

Next

MYCOUNT = i - 1

Set mydic = Nothing

Set mydic = CreateObject("Scripting.Dictionary") '字典

For i = 1 To MYCOUNT

mydic(X(i, 1)) = X(i, 2)

Next

K = mydic.keys: T = mydic.items

ReDim X(1 To mydic.Count, 1 To 2)

For i = 1 To mydic.Count

X(i, 2) = Application.Max(T)

'找到键的位置

W = Application.Match(X(i, 2), T, 0) - 1

'提取键

X(i, 1) = K(W)

'相应的键值变成空,以用MAX函数

T(W) = ""

Next

[e:f].Clear

[E1] = "排序": [f1] = "重复次数"

Sheets("60").[E2].Resize(mydic.Count, 2) = X

Set mydic = Nothing

End Sub

代码解析: 上述过程实现了把数据装入字典mydic,将数值放入字典的键,出现的次数放入键值中,然后把键及键值分别放入数组K,T中,注意是一维数组,然后对数值进行排序,用了large函数,排序完成后,再次装入字典,取出键和键值,此处这么处理的目的是获取一个一维数组,也可以用其他的处理方式,然后对键值进行排序,利用的是MAX函数,最后形成了先对数值出现次数的排序后对数值进行排序的结果,放到数组X中,最后回填数据。

54c47bd84a845608f8e29bc01d60e112.png

VBA是利用Office实现自己小型办公自动化的有效手段.我根据自己20多年的VBA实际利用经验,现在推出了四部VBA学习教程,也是我“积木编程”思想的具体体现。

第一:VBA代码解决方案,是VBA中各个知识点的讲解,这部教程可以覆盖绝大多数的知识点;

第二:VBA数据库解决方案,是数据处理的专业利器,详细的介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

第三:VBA数组与字典解决方案,讲解VBA中的数组和字典的利用。字典是VBA代码水平提高的手段,值得深入的学习。

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

上述教程的学习顺序,1,3,2或者是4,3,2逐渐深入的了解VBA掌握VBA.目前正在集中精力写第五部教程:VBA中类的解读和利用,希望在年内能陆续在各个平台和大家见面。

利用VBA实现个人办公小型自动化非常值得学习,希望大家掌握这个工具,利用这个工具,让自己轻松,高效,快乐的工作。我的“积木编程”思想也是值得大家借鉴的,这种思想让大家在代码中解脱出来,成模块的构建自己的应用,提高自己的编程效率。根据我提供的经验,利用时间多学习。

0db2ae615b96bdadb79de9f3e1c8f2a4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 带缓存的fwrite,文件IO编程之(六):基于流缓冲 fopen,fwrite,fput

标准IO开发前面分析的文件IO编程都是基于文件描述符的。这些都是基本的IO控制&#xff0c;是不带缓存的。这里要讨论的IO操作是基于流缓冲的&#xff0c;它是符合ANSIC的标准IO处理。标准IO提供流缓冲的目的是尽可能减少使用read和write调用的数量。标准IO提供了3种类型的缓冲存…

vba 提取 json某个值_利用VBA字典,提取两列数据的重复值

大家好&#xff0c;今日我们继续讲解VBA数组与字典解决方案&#xff0c;今日讲解第52讲&#xff1a;利用字典&#xff0c;提取两列数据重复值。有人讲:字典是VBA中最为精华的部分,持这种观点的人肯定有自己的道理,确实,利用字典可以给我的代码带来很大的方便之处,今日我讲解的是…

Linux中存储相关的命令,Linux存储管理命令与HAB相关命令

首先了解Linux中的设备命名规则&#xff1a;在安装和使用Linux的过程中&#xff0c;您必然会接触到不少像hda1、ttyS0、eth0这样的设备名称。在Linux中&#xff0c;每个设备必须在它的驱动程序控制下运行&#xff0c;驱动程序则与/dev目录下的特殊文件联系在一起&#xff0c;尽…

红外倒车雷达原理图_硅光电倍增管 (SiPM) 直接飞行时间 (dToF) 激光雷达平台为工业测距应用提供现成的设计...

点击蓝字关注我们请私信我们添加白名单如果您喜欢本篇文章&#xff0c;欢迎转载&#xff01;推动高能效创新的安森美半导体 (ON Semiconductor&#xff0c;美国纳斯达克上市代号&#xff1a;ON)&#xff0c;推出了由该公司硅光电倍增管 (SiPM) 技术实现的单点直接飞行时间 (dTo…

linux中nslookup命令功能,nslookup

a,最简单的方法[rootrudder ~]# nslookup baidu.comServer: 8.8.8.8Address: 8.8.8.8#53Non-authoritative answer:Name: baidu.comAddress: 123.125.114.144Name: baidu.comAddress: 220.181.111.85Name: baidu.comAddress: 220.181.111.86nslookup&#xff0c;交互方式&#…

用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数

ag_cd(m,n);if (m>n) //最小公倍数较大的数*(较小的数/最大公约数){bn;b/a;return m*b;}else{bm;b/a;return n*b;}}main(){int p,r,n,m,temp;printf("Please enter 2 numbers n,m:");scanf("%d,%d",&n,&m);//输入两个正整数.if(n在m中.{tempn;n…

visio图标_弱电间机柜原型图整理,可编辑!(Excel,visio,CAD)

有朋友问到机柜原型图&#xff0c;这个我们在弱电vip技术群里面也有朋友提到过&#xff0c;今天我们就整理了弱电系统中常用的机柜原型图&#xff0c;有Excel&#xff0c;visio&#xff0c;CAD版本&#xff0c;可以修改编辑&#xff01;1、Excel机柜原型图(可编辑)机柜布局-1机…

c语言字节强制对齐,C语言的那些小秘密之字节对齐

为了让读者加深印象&#xff0c;我们这里在代码中没有使用0&#xff0c;而是使用的4&#xff0c;所以在最终计算出的结果部分减去了一个4才是偏移地址&#xff0c;当然实际使用中我们都是用的是0。懂了上面的宏offsetof之后我们再来看看下面的代码&#xff1a;#include #define…

xshell 6 连接debian系统拒绝了密码_原来连接Linux,还有这个方法

你是不是以为电脑的操作系统只有Windows和IOS系统&#xff0c;其实不是的&#xff0c;还有一个Linux系统&#xff0c;这个系统不是很常见&#xff0c;导致很多人连怎么连接Linux系统都不太清楚明白。Windows系统可以用远程桌面&#xff0c;Linux系统怎么来远程桌面呢&#xff1…

ctf up怎么写 write_软件测试工程师要不要写工具?

Fintech概念正受到不少互联网金融公司的热捧&#xff0c;主要是指代那些可用于撕裂传统金融服务方式的高新技术。越来越多的企业开辟了新的部门去研究各种各样能让自己产品增值的科技类产品。尤其是在很多互联网金融公司&#xff0c;业务分析师BA(Business Analyst)&#xff0c…

c语言时间错误的是什么意思,C语言中,如何验证输入日期的正确性!~

就这么写的&#xff0c;没调试&#xff0c;你自己调一下#include<stdio.h>voidmain(){intyear,month,date;scanf("%d-%d-%d",&year,&month,&date);printf("%d-%d-%d",year,month,date);if(year<0||year>3000)printf("Error!&…

c语言中数据存储在文件中,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

th标签能包裹select吗_电影《八佰》过后,他能摘掉马思纯前男友标签了吗?

文/温青青提到欧豪&#xff0c;大多数人第一时间想到的还是“马思纯前男友”、“快乐男声选秀出道歌手”这些身份。原因嘛很简单&#xff0c;只因为男方在娱乐圈的名气地位暂时还不如女方。类似情况分手的情侣还有很多&#xff0c;杨紫的前男友秦俊杰&#xff0c;蓝盈莹的前男友…

c语言 浮点数误差,[扫盲]为什么浮点数运算会有误差

在开始阅读本文之前&#xff0c;请猜测一下下面程序的输出结果&#xff1a;float a0.0f;for(int i0;i<10;i){a0.1;}cout<true? Youre too young, too simple, sometimes naive.虽然乍看上去很不可思议&#xff0c;但是0.1叠加10遍的确是和1.0不等的。这种诡异的情况是由…

h3c防火墙u200配置命令_h3c 防火墙清除配置

reset saved-configuration 重置配置文件。The saved configuration file will be erased. Are you sure? [Y/N]:YConfiguration file in cfa0 is being cleared. Please wait ...Configuration file is cleared.reboot 重新防火墙Start to check configuration with next sta…

c语言库快速幂函数,C语言 - 快速幂 - 迭代法+递归法 - 详细讲解

快速幂的作用&#xff1a;解决 求 a ^ n 的问题 (n可以大于1e18)&#xff0c; 如果用for循环的话&#xff0c;毫无疑问直接炸掉 …… 所以也就用了算法复杂度在 o(log n)的快速幂算法来解决此类问题。快速幂递归法(基于二分思想)&#xff1a;那么既然要用到二分法那么怎么二分&…

python virtualenv_python开发之virtualenv与virtualenvwrapper讲解

在使用 Python 开发的过程中&#xff0c;工程一多&#xff0c;难免会碰到不同的工程依赖不同版本的库的问题&#xff1b;亦或者是在开发过程中不想让物理环境里充斥各种各样的库&#xff0c;引发未来的依赖灾难。此时&#xff0c;我们需要对于不同的工程使用不同的虚拟环境来保…

android 自定义 popupwindow,Android自定义弹出窗口PopupWindow使用技巧

PopupWindow是Android上自定义弹出窗口&#xff0c;使用起来很方便。PopupWindow的构造函数为public PopupWindow(View contentView, int width, int height, boolean focusable)contentView为要显示的view&#xff0c;width和height为宽和高&#xff0c;值为像素值&#xff0c…

python花萼长度表_python描述性统计实践

1、加载相关库和数据集使用的库主要有&#xff1a;pandas、numpy、sklearn、matplotlib、seaborn使用的数据集&#xff1a;sklearn库中的鸢尾花数据集import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisimport matplotlib.pyplot as pltimport seab…

android lottie字体json,Android 动画深入Lottie

image.png如果现在有需求,让这个小人做出拳击动作你应该如何做? 传统方法会写一大堆的路径值做路径动画&#xff0c;不好调试代码臃肿并且麻烦&#xff0c;那么有简单方法吗 有&#xff01; SVG 和 Lottie 可以胜任 SVG编辑麻烦美工不太会弄&#xff0c;那么我们用Lottie 下面…