首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算VBA中所选(大)范围内不同值的数量?

计算VBA中所选(大)范围内不同值的数量,可以使用以下代码实现:

代码语言:vb
复制
Function CountDistinctValues(rng As Range) As Long
    Dim cell As Range
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    For Each cell In rng
        If Not dict.exists(cell.Value) Then
            dict.Add cell.Value, 1
        End If
    Next cell
    CountDistinctValues = dict.Count
End Function

这个函数接受一个范围作为参数,并返回该范围内不同值的数量。它使用一个字典对象来存储已经出现过的值,并在遍历范围时检查每个单元格的值是否已经存在于字典中。如果不存在,则将其添加到字典中。最后,返回字典中键值对的数量即为不同值的数量。

在使用这个函数时,只需要将所选范围作为参数传递给它即可:

代码语言:vb
复制
Sub TestCountDistinctValues()
    Dim rng As Range
    Set rng = Range("A1:A10")
    Dim count As Long
    count = CountDistinctValues(rng)
    MsgBox "不同值的数量为:" & count
End Sub

这个示例代码将选中A1:A10范围内的单元格,并计算其中不同值的数量。最后,弹出一个消息框显示结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel VBA解读(140): 从调用单元格获取先前计算

学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算资源用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用单元格中最后一次计算得到,并且只偶尔使用计算资源...可以设置开关(这里使用称为“RefreshSlow”已定义名称)并在VBA过程刷新用户定义函数,如下所示: Sub RefreshUDFs() Dim lCalcMode As Long...有几种方法可以获得先前为用户定义函数计算,它们各有优缺点。...下面是名为PREVIOUSXLL+函数代码,该函数具有使其成为易失性或非易失性参数。(命令等效函数默认为易失性,但在使用它将前一个传递给VBA用户定义函数时,通常希望它是非易失性)。...小结 有几种方法可以从VBA用户定义函数最后一次计算获取先前,但最好解决方案需要使用C++ XLL。

6.8K20

Word VBA技术:统计文档每个字母字符数量

标签:Word VBA 在某些情况下,可能想知道在文档每个字母有多少个,即字母a-Z每个有多少,或者可能想找出特定文本中最常用字母。...本文包括两个VBA宏,计算Word文档每个字母或其他字符数量。 程序1:在对话框显示结果,其中按指定顺序显示每个字符计数。...strChar = Mid(strCharacters, lngCount, 1) '要获取出现次数: '使用""代替strChar并计算不同长度...使用""代替strChar并计算不同长度 strTextNew = Replace(UCase(strText), strChar, "") lngChar = lngTotal...如何修改程序来仅统计所选内容字符 要统计文档中所选内容字符,将代码: strText = UCase(ActiveDocument.Range.Text) 修改为: strText = UCase

2.1K10
  • VBA专题06-2:利用Excel数据自动化构建Word文档—熟悉Word VBA

    VBA是一种通用编程语言,适用于任何内置有VBA应用程序,因此Word VBA与Excel VBA语法一样,只是处理对象模型不同。下面,我们通过一些示例语句及其作用描述来熟悉Word VBA。...‘返回当前操作系统名 (21) Application.System.ProcessorType'返回计算机处理器名 (22)Application.System.Version‘返回操作系统版本号...'返回所选区域中第一段 (55)ActiveDocument.Paragraphs(1).LeftIndent '返回当前文档第一段左缩进 (56)ActiveDocument.Paragraphs...(1) '所选区域中第一句内容 Words对象 (71)ActiveDocument.Words(1).Select '选择当前文档第一个词 (72)ActiveDocument.Range.Words..., Count:=4 '将所选内容移至文档第4行 (92) Selection.GoTo What:=wdGoToTable,Which:=wdGoToNext '将所选内容移至下一个表格第1个单元格

    2.7K20

    【愚公系列】《AI智能化办公:ChatGPT使用方法与技巧从入门到精通》 024-ChatGPT办公应用(ChatGPT在Excel应用

    2.计算重复 提示词:我想计算“产品名称”列,“手机”出现条数。请用Excel公式来计算。 答: 要计算“产品名称”列“手机”出现次数,你可以使用COUNTIF函数。...3.计算重复总金额 提示词:我想计算“产品名称”列,“手机”“销售金额”总和。请用Excel公式来计算。...以下是相应Excel公式: =SUMIF(D2:D100, "手机", H2:H100) 这个公式表示:在D2到D100范围内查找所有“手机”条目,并将对应H列(即销售金额)数值加总。...计算选中(TRUE)复选框数量 =COUNTIF(A1:A6, TRUE) 这个公式计算A1到A6区域内为TRUE单元格数量,即选中复选框数量。...计算未选中(FALSE)复选框数量 =COUNTIF(A1:A6, FALSE) 这个公式计算A1到A6区域内为FALSE单元格数量,即未选中复选框数量

    11520

    Excel到底有多厉害?

    后来这个程序升级版是:调度多台打印机,进一步提高效率,以及将打印机卡纸造成队列错误概率降到极小范围内。...通过下图Word+VBA,完成主要交互界面并连接计算软件。...主要实现功能: 自动将4个顾问手中分散Excel文件汇集在一起形成一个总表,如下图 各顾问手中表格是按照部门维度来划分,汇总后需要按照不同维度来输出不同类型表格,比如:按任务线输出表格、...本来是根据地面销售人员一定服务水平,计算所需要销售人员数量;结果在项目过程,总部已经确定好了销售人数Head Count,转而要求我们根据HC确定服务水平。...然后写VBA程序,根据不同情景、不同优先级以及不同权重来调节零售店覆盖率、销售拜访频率、拜访服务深度等多因素,同时设定这几大因素可接受范围,逐步逼近HC预设。 ?

    3.5K71

    EXCEL必备工具箱17.0免费版

    ,解决了EXCEL不能批量在多个单元格前面或后面删除内容苦恼 EXCEL必备工具箱--为图片添加超链接功能,批量用单元格内容添加为图片超级链接 EXCEL必备工具箱--图片计数,统计当前文档内图形或图片数量...复制、删除、显示、隐藏、调整大小 EXCEL必备工具箱--批量下载网络图片功能,根据网址从网上多线程批量下载网络图片到本地,方便快捷 EXCEL必备工具箱--图片计数功能,用于统计指定范围内图片数量。...EXCEL必备工具箱--跨表提取行功能,帮你从相同格式多张表格中提取关键字一样行到一个表 EXCEL必备工具箱--强制读取VBA代码,绕过EXCEL安全机制,无论采用何种保护措施,都可以直接读出VBA...文档批量转换成xlsx EXCEL必备工具箱--批量修改文件时间功能 EXCEL必备工具箱--批量修改工作表名,可以通过按数字、单元格内容、增加、删除、替换等多种方式改名 EXCEL必备工具箱--标识同列不同行...EXCEL必备工具箱--插法求解功能 EXCEL必备工具箱--方便实用复利系数计算 EXCEL必备工具箱--利息摊销计算功能 EXCEL必备工具箱--按揭贷款月供自动计算功能 EXCEL必备工具箱-

    5.2K40

    Excel 有哪些可能需要熟练掌握而很多人不会技能?

    数组函数之案例1:计算某类产品总价值 计算AA产品总价值,替代select sum(产品数量x产品单价) from ... where 产品编号=‘AA’ {=SUM(IF(($B$4:$B$8="...通过使用数组函数建模轻松实现如下功能,只要在指定区域内选择相关,就能计算所需市场规模及潜力,等于使用了SQL语句:select * from table where 条件1=A1 and 条件2...主要实现功能: 自动将4个顾问手中分散Excel文件汇集在一起形成一个总表,如下图 各顾问手中表格是按照部门维度来划分,汇总后需要按照不同维度来输出不同类型表格,比如:按任务线输出表格...本来是根据地面销售人员一定服务水平,计算所需要销售人员数量;结果在项目过程,总部已经确定好了销售人数Head Count,转而要求我们根据HC确定服务水平。...然后写VBA程序,根据不同情景、不同优先级以及不同权重来调节零售店覆盖率、销售拜访频率、拜访服务深度等多因素,同时设定这几大因素可接受范围,逐步逼近HC预设

    1.6K100

    Excel实战技巧67:在组合框添加不重复(使用ADO技巧)

    很多情况下,我们需要使用工作表数据来填充组合框,但往往这些数据中含有许多重复。如何去除重复并得到唯一,这是一个永恒的话题,大家也会用到各式各样方法得到结果。...本文讲解一种技巧,使用Recordset(记录集)来获取唯一并将其填充到组合框。 示例数据如下图1所示。在工作表中有一个组合框,需要包含列A省份列表,但是列A中有很多重复省份数据。 ?...图1 这里可以使用简单记录集快速提取不同省份名并将其装载到组合框。...图4 3.可以使用如下所示命名区域代替硬编码单元格区域: Myrecordset.Open “Select Distinct [省份] from [命名区域]” 4.可以编写VBA代码遍历数组来获取唯一...如果数据处理需要运行在没有Office 2007计算机上,需要使用早期版本Access和Excel提供者版本:Provider=Microsoft.Jet.OLEDB.4.o。

    5.6K10

    Excel编程周末速成班第22课:使用事件

    有三类事件: 事件始终是用户操作结果,例如单击用户窗体上控件或按某个键 用户操作或VBA代码可能引起事件,例如打开工作簿或激活图表 与用户操作无关事件,例如一天特定时间发生 总体而言,Excel...事件处理程序代码 你程序通过将代码放置在事件处理程序来响应事件。事件处理程序是一种特殊VBA过程,当相关事件发生时会自动执行。...左上方对象列表显示了可以在当前窗口中放置事件处理代码那些对象,右上方事件列表列出了第一个列表中所选对象事件。当选择事件时,编辑器会在窗口中自动输入该过程框架。...你可以将此事件用于数据验证,例如验证在特定单元格输入始终在指定范围内。如果数据不在此范围内,代码将显示一条消息并清除单元格,以便用户可以重新输入数据。...注:本文是在知识星球App完美Excel社群中发表Excel VBA编程系列文章《Excel编程周末速成班第22课:使用事件》一部分内容。

    2.8K10

    Excel实战技巧:基于单元格显示相应图片

    标签:Excel实战,INDEX函数,MATCH函数,定义名称,VBA 选择零件号,显示相应零件图;选择员工姓名,显示该员工相片,等等,都是选择单元格而显示相应图片例子,也就是说基于单元格查找并显示对应图片...,单元格改变,图片也自动改变。...选择包含国旗任一单元格,按Ctrl+C或者单击功能区“复制”按钮复制该单元格,再选择一个不同单元格(示例是单元格E2),单击功能区“开始”选项卡“粘贴——链接图片”,将显示被粘贴图片,...方法2:使用图表填充+#N/A 与上面相同,在单元格D2创建数据验证列表,可以在下拉列表中选择国家名。 首先,创建一个将所选国家计算为1,其他国家计算为#N/A公式。如下图4所示。...图4 可以看到,在单元格B2公式为: =IF(VLOOKUP(A2,D2,1,0)=A2,1,NA()) 如果单元格D2与列A相应相同,则公式返回1,否则返回#N/A。

    9.1K30

    使用VBA随机切换幻灯片

    标签:VBA,PowerPoint编程 本文介绍让幻灯片能够随机切换VBA代码。...假设只有5张需要随机切换幻灯片,如果你幻灯片数量不只这些,可以结合实际调整变量FirstSlide和LastSlide。...图1 选取绘制形状,单击功能区“插入”选项卡“链接”组“动作”按钮,在弹出“操作设置”对话框,选取“运行宏”单选按钮并从下拉列表中选取RandomSlides过程,如下图2所示。...图2 这样,每次放映该PPT时,单击第一页箭头,就会按不同顺序放映幻灯片。...在我们范围内所有将被打乱幻灯片中,必须在所有这些幻灯片上放置一个形状,并且该形状必须在单击时运行Advance过程。随机幻灯片第一个循环将在单击形状时出现。

    63690

    VBA专题10-24:使用VBA操控Excel界面之单元格上下文菜单(Excel 2010及以后版本)

    学习Excel技术,关注微信公众号: excelperfect 添加按钮控件 假设你需要对工作表前面有货币符号执行计算,然而那些被解释为文本,你要编写VBA过程来移除所选单元格区域中货币符号。...在标准VBA模块过程: Sub RemoveUSD(control As IRibbonControl) Dim workRng As Range Dim Item As Range...专题10-23:使用VBA操控Excel界面之添加动态菜单》一文,当用户激活不同工作表时,在Workbook_SheetActivate事件处理明确地使菜单无效(为了重新构建菜单)。...然而,如果动态菜单在单元格上下文菜单,那么不需要编写VBA代码来使菜单无效。当用户右击工作表单元格时,动态菜单在单元格上下文菜单显示其内容过程重新创建。...下图展示了含有不同类型(自定义和内置)控件单元格上下文菜单: 640 (1).gif 注意,无法将控件添加到Excel 2007单元格上下文菜单和更早XML代码

    1.6K10

    【Excel控】高手教你用Excel制作百度迁徙数据地图

    受其启发,本贴讲解用Excel制作基于中国地图迁徙地图/流向地图方法。下图是最后目标样式。 ? 作图思路 迁徙射线可用散点图绘制,迁徙数量可用气泡图绘制。...目标是绘制从当前所选省份到其他各省射线。 在射线图工作表,C、D 列为各省xy坐标数据,组织K、L列xy数据,间隔重复所选省份和各省xy坐标,这是关键点之一。...目标是当选择某个省份后, 若所选指标为“迁出”,则在各省图形上以实色气泡显示所选省迁出至各省数量,并在所选图形上以虚线气泡显示其迁出至各省汇总量。...若所选指标为“迁入”,则在各省图形上以虚线气泡显示各省迁至所选数量,并在所选图形上以实色气泡显示各省迁入所选汇总量。...还可把射线按数值大小设置为不同粗细来可视化数值。以上都需要用到vba,有兴趣读者可继续。

    2.3K40

    Excel制作中国迁徙数据地图

    受其启发,本贴讲解用Excel制作基于中国地图迁徙地图/流向地图方法。下图是最后目标样式。 ? 作图思路 迁徙射线可用散点图绘制,迁徙数量可用气泡图绘制。...目标是绘制从当前所选省份到其他各省射线。 在射线图工作表,C、D 列为各省xy坐标数据,组织K、L列xy数据,间隔重复所选省份和各省xy坐标,这是关键点之一。...目标是当选择某个省份后, 若所选指标为“迁出”,则在各省图形上以实色气泡显示所选省迁出至各省数量,并在所选图形上以虚线气泡显示其迁出至各省汇总量。...若所选指标为“迁入”,则在各省图形上以虚线气泡显示各省迁至所选数量,并在所选图形上以实色气泡显示各省迁入所选汇总量。...还可把射线按数值大小设置为不同粗细来可视化数值。以上都需要用到vba,有兴趣读者可继续。

    4.8K100

    示例讲字典(Dictionary):获取唯一

    标签:VBA,Dictionary 字典(Dictionary)是一种通过键(key)和项(item)(注:键和项是字典术语)存储唯一项方法。...这里,将存储一个10行单元格区域,然后只输出该区域中唯一项目。 示例如下图1所示。获取其数据区域,使用字典将数据存储,然后使用VBA数组提取我们选择需要获取唯一列。...图2 下面的VBA代码从数据单元格区域中生成唯一数据。它将从数组的当前区域获取数据,并将数据汇总到一个唯一列表,输出到所选单元格区域内。...然后,一个简单For循环遍历数组数据。 .Item行允许引用数组(ar),并将唯一数据放入字典。...图3 如果想要输出不同唯一,可以使用代码。

    4.9K50

    Cobaltstrike免杀从源码级到落地思维转变

    运行时首先将自己在内存循环调用三次,也就是为什么会有spwan这个原因。...该方法为生成payload主要逻辑,通过用户所选语言生成shellcode 第三个方法 ? 该方法为UI界面填, ? ?...用户所选可变操作都会存放到此,简单来说就是payload生成可变参数。然后判断如果配置错误则会弹出相应内容,如果成功则将界面显示语言和程序内部实际要匹配进行转化。...为下面第二个方法做铺垫,此时用户不管是x86,x64还是监听方式,所选生成语言,IP端口都已经放到stager。...只是不同语言声明数组方式不同,然后根据语言不同去凑编码。然后把内容给Packer对象赋值进行下一步处理。 这正验证了我分析前提出第一种猜想,框架源码根本没有木马源码。

    1.3K20

    batch size设置技巧

    1、什么是BatchSize Batch一般被翻译为批量,设置batch_size目的让模型在训练过程每次选择批量数据来进行处理。Batch Size直观理解就是一次训练所选样本数。...但在这情况下,计算得到不同梯度差别巨大,难以使用一个全局学习率,所以这时一般使用Rprop这种基于梯度符号训练算法,单独进行梯度更新。...4、在合理范围内,增大Batch_Size有何好处? 内存利用率提高了,矩阵乘法并行化效率提高。 跑完一次 epoch(全数据集)所需迭代次数减少,对于相同数据量处理速度进一步加快。...batchsize过大: (1)提高了内存利用率,矩阵乘法并行计算效率提高。 (2)计算梯度方向比较准,引起训练震荡比较小。...2)由于不同权重梯度差别巨大,因此选取一个全局学习率很困难。

    4K31
    领券