本次的练习是:给定一个单元格区域,要求使用公式得到该区域中出现重复次数最多的数据的重复次数。如下图1所示,在单元格区域A1:F1中,重复次数最多的数据是“完美Excel”,重复次数是3。
于是,我准备把Excel VBA写成一个系列免费教程,撸完这个系列你也是VBA界的黑山老妖了。
写在开头的话:本系列从第133篇开始的22篇文章,都是翻译改编自fastexcel.wordpress.com的Making your VBA UDFs Efficient系列,可能有点高深晦涩,但确实都是好的VBA用户自定义函数编程细节技巧和经验。对于大多数人来说,你可以略过这些内容,因为我们只需懂得基础的VBA用户自定义函数知识就足够了。对于想深入研究VBA的人来说,还是值得研究和试验的。我刚开始看到这些文章的时候,一是水平有限,看不大懂,也觉得没有什么必要,所以一直收藏着。然而,随着自已研究VBA的深入,不由得佩服老外对VBA研究的深入,此时刚好Excel VBA解读系列又写到自定义函数这里,正好拿出来,边研究并翻译分享给大家。如果对这些内容没有兴趣的朋友,可以略过,免得浪费时间。
对于大多数人来说,使用Excel来做的工作就是在单元格中输入数据,进行一些格式化制作成报表输出,在这个过程中,可能会使用一些公式,可能会使用图表展现数据,也可能会使用VBA进行一些自动化数据处理工作。
Excel有一个有趣且非常有效的技巧叫做隐式交集(Implicit Intersection),允许有效地使用大的命名区域和整列引用。
Excel数组公式能够做很多令人惊讶的事情。除了在输入完后要按Ctrl+Shift+Enter组合键外,与普通公式一样。本文主要研究使用用户定义函数的数组公式。
引言:本文学习整理自powerspreadsheets.com,非常清晰透彻地讲解如何使用VBA进行复制粘贴操作。
在处理Excel表格的时候,偶尔会碰上这种需要,定位选中单元格区域内的空白单元格,然后让空白的单元格等于它上面的单元格,一般在Excel是这样操作的:
excel已经成为必不可少的数据处理软件,几乎天天在用。python有很多支持操作excel的第三方库,xlwings是其中一个。
在《Excel实战技巧15:在工作表中查找图片》中,我们使用名称和INDEX/MATCH函数组合,在工作表中显示与所选择名称相对应的图片。在《Excel实战技巧21:在工作表中查找图片(方法2)》中,使用名称和OFFSET/COUNTA/MATCH函数来实现相同的效果。在《Excel实战技巧22:在工作表中查找图片(使用VBA代码)》中,使用VBA代码来达到根据名称显示相应图片的效果。本文实现的效果相同,实现的方法类似,但可能更简单些。
今天从WPS官方邓华老师那里获得了WPS内测安装包,支持WPS表格的动态数组公式,测试了一轮,还是比较满意,没有像之前跟进Excel365新函数那样,只是部分支持,这一次,基本上已经和Excel365的体验一致。
因为VBA这个语言其实在很多地方都有,Office每个套件应该都有,我还知道的是CAD也用这个语言。
在《Excel实战技巧15:在工作表中查找图片》中,我们使用名称和INDEX/MATCH函数组合,在工作表中显示与所选择名称相对应的图片。在《Excel实战技巧21:在工作表中查找图片》中,使用名称和OFFSET/COUNTA/MATCH函数来实现相同的效果。在《Excel实战技巧22:在工作表中查找图片(使用VBA代码)》中,使用VBA代码来达到根据名称显示相应图片的效果。在《Excel实战技巧85:从下拉列表中选择并显示相关的图片》中,以更为简单的方式实现的了显示图片的相同效果。本文将在显示图片的同时显示相关的文字说明。
Q:在列A中是一系列日期,我如何操作,使得含有当天日期的单元格显示为红色,距离当天10天内的日期单元格显示为黄色?
https://docs.microsoft.com/zh-cn/office/vba/language/glossary/vbe-glossary#array
之前的文章中介绍过这个技巧,这是在mcgimpsey.com中看到的,也辑录于此,供参考。
在Excel公式栏中,我们可以看到当前单元格中的内容,或者当前单元格中使用的公式,如下图1所示。
本文介绍的自定义函数来源于wellsr.com,以Excel的CELL函数和INFO函数为样板,可直接返回工作表或工作簿的名称或工作簿路径,以及与Excel及其操作环境有关的各种信息。本文对其内容进行了整理并分享于此,希望能够有助于VBA代码的学习,同时留存这个自定义函数以备所需。
本节为《Chapter 1:Why Python for Excel?》的第一部分,简单地讲解了Excel的历史,Excel编程的最佳实践,以及Excel为适应发展而作出的变化。 当你每天花费很多时间
Worksheet.Paste(Excel VBA没有Range.Paste方法)在某种程度上与Range.PasteSpecial方法非常相似。Paste方法的主要目的是将剪贴板包含的内容粘贴到相关工作表上。
ChatGPT最近全球爆火,我在几个领域进行了测试,使用体验超出了预期。我常用的工具是Excel和Power BI,因此测试了用AI写Excel公式、VBA和DAX,AI写出的内容大多可直接使用,无需修改。以VBA为例,我问AI的第一个问题是:
大家好,又见面了,我是你们的朋友全栈君。 Excel宏教程 (宏的介绍与基本使用) Microsoft excel是一款功能非常强大的电子表格软件。它可以轻松地完成数据的各类数学运算,并用各种二维或三维图形形象地表示出来,从而大大简化了数据的处理工作。但若仅利用excel的常用功能来处理较复杂的数据,可能仍需进行大量的人工操作。但excel的强大远远超过人们的想象–宏的引入使其具有了无限的扩展性,因而可以很好地解决复杂数据的处理问题。 随着支持Windows的应用程序的不断增多和功能的不断增强,越来
下面是2020年11月12日发布的一些简单的ExcelVBA问题的答案,是不是和你想的一样。
案例:在「单元格B3」输入不同的行号,然后点击「显示答案」按钮,程序就会自动计算右边相应题目的答案,如何实现?
在Excel中,借助于Excel公式、条件格式和一点点VBA代码,也能实现高科技题材电影中的数字雨效果。如下图1所示。
在《20211202,爱的对称日,Excel也能判断》中,我们使用公式来判断单元格中的内容是否为“回文”,公式稍有点复杂。然而,如果Excel中有一个反转函数,那就简单了。
累加器是一个或多个单元格,用于保存输入的数值的总和。它们可以是单个单元格,如果A1=6,并且用户在A1中输入2,则显示的结果为8。或者可以是两个单元格,比如说,在A1中输入的数字会立即与B1中的值相加。
还有一个“秘密”就是,也可以在定义的单元格区域名称中使用EVALUATE,因此有一些方法可以在不使用VBA的情况下访问单元格公式中EVALUATE的功能。
这是thesmallman.com上的一个示例,利用VBA、高级筛选和公式进行数据筛选。
当需要在单元格区域中找到某个值时,可以使用MATCH函数。在单元格中查找特定字符串时,FIND函数和SEARCH函数非常方便。如何知道单元格中是否包含与给定模式匹配的信息?显然,可以使用正则表达式。
文章背景: 在工作生活中,存在文件共享的情况。在数据处理时,单元格公式中往往要引用原始数据源。多人操作时,每个人的操作习惯不同,如果数据源的单元格不小心被人为移动或删除,会导致单元格公式引用失效,产生#REF! 错误。如果进行的是跨表引用,这种错误往往还很难发现。
很多人无法理解这个函数,我开始也一样。但是学了VBA之后,我发现这尼玛就是个VBA函数,就像SUMPRODUCT函数是一个伪装成普通函数的数组函数一样。
Excel用户经常发现在公式中使用整列的引用很方便,这样可避免每次添加新数据时都必须调整公式。因此,当编写用户自定义函数时,可能会使用:
可以给一个常量值定义名称,如下图1所示,定义常量VersionNum表示数字1.0。
VBA还会存在多久?VBA会消失吗?我现在学VBA还来不来得及?什么语言会取代VBA?……这些都是老生常谈的话题,多少年前就有不少人在争论。然而,时至今日,VBA不仅没有消失,而且还活得很好。
在一个工作簿中,如果工作表太多了,要选中需要操作的Sheet还挺麻烦的。对于Excel用的不大熟练的人,只会按左下角的方向箭头,然后用眼睛去查找,有的人为了让Excel显示多一些工作表名称,还会把右下角的滚动条拉的只剩一点点,造成操作Sheet都不方便。
如果要统计某单元格中指定的某特定字符的数量,可以使用LEN/SUBSTITUTE函数组合的经典公式(假设字符串位于单元格B2):
Excel的条件格式是一项很强大很实用的功能,能够实现很多需要VBA编码才能实现的效果。本文是条件格式的一个应用示例。
在筛选数据时,通常是筛选满足特定条件或者介于两个条件之间的信息,例如基于多个条件的筛选或者筛选两个日期之间的数据。然而,总是会遇到一些特殊情形,例如,单元格中包含有日期和时间,如果单元格中的时间大于指定的时间,就获取该单元格所在行的数据。这就是本文要解决的问题。
使用Range.Rows.Count和Range.Columns.Count属性。
1. 引用数组,包含一个以上的单元格引用,例如单元格区域、工作表引用和定义的名称。
前言能生成 pandas 代码的数据浏览工具工具安装加载数据直觉理解运行机制进一步完善充分利用 Excel 功能最后
使用Excel如果经常处理英文资料的话,应该会经常碰到需要转换大小写的情况,Excel提供了UPPER、LOWER等转换函数。
文章背景: 在Excel中,对数值的排序依据是数值的大小、对文本的排序依据是文本首字母。但是对文本与数字组合形式,excel排序的结果有时不尽如人意。如下的一列数据,是通过Sort升序后的结果:
文章背景: 在Excel中,公式引用无效单元格时将显示 #REF! 错误。当公式所引用的单元格被删除或被粘贴覆盖时最常发生这种情况。
使用Excel处理数据,经常会在单元格中使用公式引用多个工作簿之间的数据,工作簿以及被引用数据的工作簿关闭后,再打开工作簿的时候,会出现如下提示:
使用Excel主要就是做表格,表格自然离不开数字,特别是对于会计专业的,每天都要处理大量的表格,大量的数字。
Excle中A列是乱序,B列是人名排序,什么函数公式可以让A列根据B列排序,且一一对应?也就是说,如下图1所示,A列是一种排序(A列中每个单元格中有个人名,这个人名对应B列中的人名),B列一种排列顺序,C列的排列顺序要对应B列中的人名(使A列和B列形成一一对应关系),除了复制粘贴可以用什么函数公式得到呢?
引言:本文学习整理自powerspreadsheets.com,讲解得很细致,一些知识点反复强调,对于熟悉VBA的朋友来说,感觉有点啰嗦,但是对于VBA初学者来说,对快速掌握Range对象的引用,却很有好处。
领取专属 10元无门槛券
手把手带您无忧上云