Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用范围查找重复项的VBA宏

使用范围查找重复项的VBA宏
EN

Stack Overflow用户
提问于 2013-12-08 02:07:33
回答 2查看 14.2K关注 0票数 0

VBA新手在这里,我已经寻找了2天,以找到一个脚本,我可以修改我的需要,但一直卡住或不能使任何工作,为我的特定情况。

我正在尝试编写一个简单但具体的宏来查找范围中的重复项并对其进行着色。

我的搜索条件在范围内(B5:B405),要扫描和着色的数据位于范围内(D5:OM1004)

数据只是数字,需要与搜索条件完全匹配,如果发现数据中的单元格存在于搜索条件中,则数据单元格填充为红色。

我还需要在数据行1004处停止脚本,并在末尾显示一条总执行时间的消息。

我可以用条件格式在几秒钟内完成这一点,但我需要计算之后的彩色单元格,并且我找不到任何VBA宏可以让我计算条件格式的颜色,即使是在cpearson的所有站点都没有成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-08 03:10:59

试试这个:

代码语言:javascript
运行
AI代码解释
复制
Option Explicit
Sub ColorCriteria()
    Dim rCriteria As Range
    Dim rData As Range
    Dim c As Range, r As Range
    Dim sFirstAddress As String
    Dim ColorCounter As Long
    Dim StartTime As Single, EndTime As Single

StartTime = Timer
Set rCriteria = Range("B5:B405")
Set rData = Range("D5:OM1004")

Application.ScreenUpdating = False
With rData
    .Interior.ColorIndex = xlNone

For Each r In rCriteria
    If Not r = "" Then
    Set c = .Find(what:=r.Value, LookIn:=xlValues, lookat:=xlWhole, _
            searchdirection:=xlNext)
    If Not c Is Nothing Then
        sFirstAddress = c.Address
        c.Interior.Color = vbRed

        Do
            Set c = .FindNext(c)
            c.Interior.Color = vbRed
            ColorCounter = ColorCounter + 1
        Loop Until c.Address = sFirstAddress
    End If
    End If
Next r

End With
Application.ScreenUpdating = True
EndTime = Timer

MsgBox ("Execution Time: " & Format(EndTime - StartTime, "0.000"" sec""") _
    & vbLf & "Colored Cell Count: " & ColorCounter)


End Sub
票数 1
EN

Stack Overflow用户

发布于 2013-12-08 09:31:42

事实上,这个解决方案是完美的。但为了澄清,最初的条件格式化单元格计数方法也可以从Excel 2010开始使用。在那里可以识别颜色,然后用下面这样的方法对细胞进行计数

代码语言:javascript
运行
AI代码解释
复制
Set aktSheet = Application.ActiveWorkbook.Worksheets("Sheet1")
counter = 0
For Each c In aktSheet.Range("D5:OM1004").Cells
    If c.DisplayFormat.Interior.ColorIndex = 38 Then
        counter = counter + 1
    End If
Next
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20449028

复制
相关文章
VBA: 提高 VBA 宏性能的 8 个技巧
文章背景: 作为VBA新手,在运行自己编写的代码时,可能会遇到VBA运行缓慢的问题。可以采取以下8个措施来提高运行效率。
Exploring
2022/12/18
3.8K0
VBA:  提高 VBA 宏性能的 8 个技巧
使用VBA查找并在列表框中显示找到的所有匹配项
有时候,我们想从数据表中搜索指定的内容,但匹配项往往不只一项,而我们想要将匹配项全部显示出来,如下图1所示。
fanjy
2022/04/13
13.3K6
使用VBA查找并在列表框中显示找到的所有匹配项
offset宏定义_vba offset 用法
函数作用:计算结构体成员的偏移,有些自有代码里也会手写这样的代码,实际上这个函数是标准实现的。实际上如果我们浏览 ANSI C 编译器的标头文件,将在 stddef.h 中遇到这样奇怪的宏。这个红具有可怕的声明。此外,如果您查阅编译器手册,您会发现一个无益的解释,上面写着如下:
全栈程序员站长
2022/09/23
6090
Excel之VBA简单宏编程
excel是一款很经典的数据分析的工具,里面包含了很多内置函数,但实际情况有时却复杂得多,而excel的宏编程提供了自定义函数的功能,正好有老师需要帮忙做一些数据分析,就学习了一下,下面是我的学习笔记。本人使用的是excel2013。有出入的地方可以参考。
全栈程序员站长
2022/07/01
3.6K0
Excel之VBA简单宏编程
offset宏定义_vba left函数
最近做某项目撸代码时用到了offsetof宏,第一次使用这个宏,项目结束后对其用法也略知一二,现分享如下。
全栈程序员站长
2022/09/23
5530
Access重复项查询
大家好上节介绍了汇总查询,继续介绍选择查询中的重复项查询和不匹配项查询,这两种查询都可以在查询向导中创建,本节主要介绍重复项查询。
无言之月
2020/06/02
1.8K0
Access重复项查询
使用VBA查找最接近的值
有时候,不一定会查找到精确的值,如果是这样的话,应该可以找到最接近的值。有很多公式可以实现,然而本文不使用公式,而是使用VBA代码来实现。
fanjy
2022/11/16
2.1K0
VBA宏编程_宏代码怎么用
Office的编程语言较老,和现有高级语言相差较多,导致入门以及编写差异较大,编写和调试不方便,所以一直没考虑过使用VBA进行Office编程,但最近有个需求,是在无高级编程语言环境的内网主机上进行表格自动化处理,所以必须得用表格自带函数实现简单逻辑以及VBA实现复杂逻辑。
全栈程序员站长
2022/08/18
1.1K0
VBA宏编程_宏代码怎么用
查找数组中重复的数字
        题目来源于《剑指Offer》中的面试题3:找出数组中重复的数字。   // 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应的输出是重复的数字2或者3。         解决方法有多种,包括数组排序,哈希表法,以及作者推荐的重排数组法。此处介绍自己的一个做法,以空间换
waylon
2018/03/08
4K0
ChatGPT与Excel结合_编写VBA宏
⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。
天天Lotay
2023/10/15
7090
ChatGPT与Excel结合_编写VBA宏
ChatGPT与Excel结合_编写VBA宏
⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。
天天Lotay
2023/10/15
5800
ChatGPT与Excel结合_编写VBA宏
[Leetcode][python]删除排序数组中的重复项/删除排序数组中的重复项 II
数组完成排序后,我们可以放置两个指针 ii 和 jj,其中 ii 是慢指针,而 jj 是快指针。只要 nums[i] = nums[j]nums[i]=nums[j],我们就增加 jj 以跳过重复项。
蛮三刀酱
2019/03/26
6.6K0
VBA实用小程序:使用VBA代码安装或卸载加载宏
下面的程序整理自jkp-ads.com,使用VBA代码来自动安装或者移除指定的加载宏。
fanjy
2022/11/16
1K0
移除重复值,使用VBA的RemoveDuplicates方法
查找重复值、移除重复值,都是Excel中的经典问题,可以使用高级筛选功能,也可以使用复杂的公式,还可以使用VBA。
fanjy
2022/03/07
8.3K0
移除重复值,使用VBA的RemoveDuplicates方法
PQ-折腾个啥咧?除了“删除重复项”,还有“保留重复项”!
小勤:Excel里删除重复项很简单,但要保留重复项怎么做?比如下面这个数据,保留其中有重复的项目:
大海Power
2021/08/30
1.3K0
JS判断重复数组是否有重复项
大家好,今天我们来讲一下,如何使用javascript判断一个数组之中,是否有相同重复的元素。 在讲之前,先来讲一下思路: 在现实当中,当我们要判断某几个东西是否相同,那就意味着这东西至少是有2个或
web前端教室
2018/02/06
7.5K0
JS判断重复数组是否有重复项
利用 Linux 查找重复文件
本部分算是对find强大功能的扩展使用方法说明。在find的基础上,我们可与(如xargs命令)等其它基本Linux命令相结合,即能创造出无限的命令行功能,比如:可以快速查找出Linux某个文件夹及其子文件夹中的重复文件列表。要实现这个功能在流程上是比较简单的,只要查找遍历出所有文件,再通过命令去比较每个文件的MD5就OK啦。
杰哥的IT之旅
2021/09/27
5.7K0
MySQL | 查找删除重复行
本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysql IRC 频道问到的问题)
逍遥子大表哥
2021/12/17
5.8K0
MySQL | 查找删除重复行
利用 Linux 查找重复文件
本部分算是对find强大功能的扩展使用方法说明。在find的基础上,我们可与(如xargs命令)等其它基本Linux命令相结合,即能创造出无限的命令行功能,比如:可以快速查找出Linux某个文件夹及其子文件夹中的重复文件列表。要实现这个功能在流程上是比较简单的,只要查找遍历出所有文件,再通过命令去比较每个文件的MD5就OK啦。
IT运维技术圈
2022/06/27
4.2K0
查找重复姓名的sql语句
方式一:select * from 学生表 where 姓名 in(select 姓名 from 学生表 group by 姓名 having count(姓名)>=2)
阮键
2020/09/07
5K0
查找重复姓名的sql语句

相似问题

VBA宏以查找重复项并保持较大的值。

42

查找重复的消息框VBA宏

20

循环宏以查找重复项

10

Excel VBA宏中的使用范围

32

基于列名删除重复项的VBA宏

118
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文