VBA 多个循环匹配条件

2024-01-14

如果这是重复的,我深表歉意,因为我一直在搜索但没有找到答案。我对 VBA 以及它们如何构造循环很陌生。我正在尝试进行搜索和比较。我需要比较第一行中的值,看看它们是否与第二行匹配,如果不匹配,则继续移动到下一行。请参阅下面的我的代码(它运行时没有错误,只是找不到任何存在的值,因为我可以手动搜索并找到它们)

这个数据集可能非常大,所以我想尽可能高效地编写它,并且不确定哪种循环结构会执行得更快。我需要比较第 21 列中的值,看看是否有重复的值,如果有,那么我需要查看相应行的第 22 列中的值是否相同,如果相同,那么我想去RowB 中的下一行,否则如果它们不是相同的值,那么我想检查第 4 行中都是日期的值,看看它们是否在 2 个月内。如果他们没有继续寻找。

Dim RowsCount As Integer
Dim ColCount As Integer
RowsCount = Cells(Rows.Count, 1).End(xlUp).Row
ColCount = Cells(1, Columns.Count).End(xlToLeft).Column

Dim RowA As Integer
Dim RowB As Integer
Dim GroupA As Variant
Dim GroupB As Variant
Dim CounterA As Variant
Dim CounterB As Variant
Dim RevDateA As Date
Dim RevDateB As Date
Dim RevDateDiff As Variant

RowA = 2
RowB = 3
Do While RowA <= RowsCount
GroupA = Cells(RowA, 21).Value
CounterA = Cells(RowA, 22).Value
RevDateA = Cells(RowA, 4).Value
    Do While RowB <= RowsCount
    GroupB = Cells(RowB, 21).Value
    CounterB = Cells(RowB, 22).Value
    RevDateB = Cells(RowB, 4).Value
        If GroupA = GroupB Then
            If CounterA = CounterB Then 'go down 1 row in B and repeat
            Else
                If RevDateB - RevDateA < 62 Then
                'highlight row b and move on
                Rows(RowB).Select
                Application.CommandBars.ExecuteMso "CellFillColorPicker"
                Else
                End If
            End If
        Else 'go down 1 row in B and repeat check
        End If

    RowB = RowB + 1
    Loop

RowA = RowA + 1
Loop

这是查找行对行重复项的好方法

Private Sub findit()

Dim bringIn As Variant

bringIn = ThisWorkbook.Sheets("Sheet1").UsedRange
rowC = ThisWorkbook.Sheets("Sheet1").UsedRange.Rows.Count

For i = LBound(bringIn, 1) To UBound(bringIn, 1)
    If i = rowC Then
        'nothing
    Else
        If bringIn(i, 1) = bringIn(i + 1, 1) Then
            ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Interior.ColorIndex = 37
        End If
    End If
Next i

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA 多个循环匹配条件 的相关文章

  • Excel - 根据选择创建图表的宏

    我想就以下问题寻求您的帮助 因为我必须创建大量图表 所以我想要一个宏来根据我的选择插入图表 由于我对 VBA 没有任何了解 但现在需要它 至少现在 我真的应该自己学习使用它 我将感谢您的帮助 基本上 我需要知道如何调整我记录的代码 以便根据
  • 报告文字颠倒?

    由于特定原因 我需要能够在报告的下半部分颠倒 倒置 显示一些值 这份报告的目的是打印并从中间折叠起来 所以我希望它遵循这种特定的格式 我找不到任何可以轻松做到这一点的东西 我考虑过但不知道如何实施的一些想法 导入 颠倒字体并将控件的字体设置
  • 列表框:添加组合框作为项目?

    是否可以将列表框的每个项目都作为组合框 我需要这个 因为我将列表框设置为可检查 然后我需要让用户从列表中每个元素的不同选项中进行选择 Thanks 如果您不打算分发您的应用程序 那么您还可以查看 TreeView 控件 请参阅此示例 COD
  • 将 copyfromrecordset 写入范围

    我有以下 vba 它从单元格 C10 开始读取 MCO 直到其为空 并将从 SQL 数据库获取机器数量 解密和升级机器数量 这工作正常 但我在获取相应行中的数据时遇到问题 目前它总是将数据写入 D10 因为我已经对其进行了硬编码 但我不确定
  • 复制列中的所有单元格[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一张表 有 200 行 行间有一
  • SSIS使用列位置而不是名称导入Excel文档

    我想知道是否可以通过按位置引用列来使用 SSIS 导入 Excel 文档 例如 导入列 A D M AA 等 我问这个问题是因为我需要从第三方加载多个 Excel 文档 每个文档在相应的列中包含相同的数据类型 但每个文档的列名称不同 Tha
  • 非相邻单元格作为数组函数的输入(MIN 和 ISBLANK)

    提出了这个问题 由于具体问题的答案是一个拼写错误 因此被删除 https stackoverflow com questions 59289065 excel non adjecent cells as input to array fun
  • 将所有工作簿工作表复制到新工作簿 VBA

    我正在使用此代码将工作簿中的每张工作表复制到新工作簿中 它工作正常 但它颠倒了工作表的顺序 是否有办法阻止它这样做 Sub copy copies all the sheets of the open workbook to a new o
  • IE.navigate2 因保护模式关闭而失败

    我正在从 Excel VBA 自动化 IE8 Excel 2010 Windows 7 Set IE CreateObject InternetExplorer Application IE Navigate2 URL 如果 URL 是处于
  • 调用退出后应用程序未退出

    我有一个小问题 我似乎无法弄清楚 我正在将 DataGridView 它的内容 保存到 xls 文件中 我这样做没有任何问题 除了在我的任务管理器中它仍然显示它正在运行 我已致电 xlApp Application Quit 这被声明为 D
  • 从受密码保护的 Excel 文件到 pandas DataFrame

    我可以使用以下命令打开受密码保护的 Excel 文件 import sys import win32com client xlApp win32com client Dispatch Excel Application print Exce
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • 实体框架、dll、excel

    我用C 编写了Excel使用的dll 该dll是COM注册的 我与 Excel 的连接没有问题 该 dll 使用实体框架 5 从 SQL Server 数据库检索数据 如果我通过控制台应用程序运行该 dll 则该 dll 工作正常 但是当我
  • 运行时错误“1004”:无法获取 WorksheetFunction 类的 Combin 属性

    我在 Excel 2013 的工作簿中有 VBA 函数 可以根据泊松分布计算 p 值 当 的时候events下面代码中的变量超过 1029 我得到运行时错误 1004 无法获取 WorksheetFunction 类的 Combin 属性
  • 通过 PHP 检测 excel .xlsx 文件 mimetype

    我无法通过 PHP 检测 xlsx Excel 文件的 mimetype 因为它是 zip 存档 文件实用程序 file file xlsx file xlsx Zip archive data at least v2 0 to extra
  • 如何处理 Workbook.SaveAs 覆盖确认上的“否”或“取消”?

    我希望在 VBA 脚本开始修改内容之前提示用户保存工作簿 当 另存为 对话框出现时 如果用户单击 取消 我会引发自定义错误并停止脚本 如果他们单击 保存 并且文件名已存在 我希望询问他们是否覆盖 这是我的代码 Function SaveCu
  • 基于多个动态过滤条件过滤Excel范围

    我想过滤数据集 考虑几个可以根据可能值列表动态更改的过滤条件 我有过滤条件team其具有以下值 Team A Team B ALL 其中 ALL 是代表所有团队的通配符 对于第二个标准release 如果我想在过滤器中包含多个版本 则值之间
  • Excel 在“.xls”中发现不可读的内容。同时导出水晶报表到excel

    我正在将数据从 Crystal 报告导出到 PDF 工作正常 并显示所有记录 但是当我将其导出到 Excel 文件中并成功导出时 以及当我在 Excel 中打开它时给出错误消息 文件错误 数据可能已丢失 当我点击 确定 按钮时 在 Exce
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

    当我尝试直接引用某个范围内的值时 出现运行时错误 450 但如果我使用中间变量 它就会起作用 我不明白为什么 所以我担心在将来的某个时候我会再次遇到错误而不知道为什么 我尝试过使用 With End With 块 但当我直接引用范围时它仍然
  • 选择在 Excel 宏(VBA 中的范围对象)中具有值的列

    如何修改 VBA 中的这一行以仅选择具有值的列 Set rng Range A1 Range A65536 End xlUp SpecialCells xlCellTypeVisible 我不认为我做的事情是正确的CountLarge财产是

随机推荐

  • Sitecore DateField 的 DateTime 属性显示错误的日期

    在我的 Sitecore 项目中我使用DateTime Sitecore 的类型 字段作为属性Item 我试图通过以下代码获取该值 var dateField DateField item Fields Date var itemDate
  • Drupal 6:提交时 form_state 值为空

    我正在尝试在 Drupal 6 中创建一个自定义表单 下面的代码似乎一切正常 包括提交时在数据库中创建一个新条目 但所有 form state 值都是空的 我缺少什么
  • 操作码中的汇编段

    我注意到在操作码中使用了汇编段 Example MOV DWORD PTR SS EBP 30 30 我认为 PTR SS 用于指定EBP 30来自堆栈 SS 堆栈段 我是对的还是完全错的 而且 你能告诉我上面的例子和 MOV DWORD
  • java.lang.IllegalArgumentException:setAttribute:不可序列化的属性

    我继承了一些代码 当我尝试运行它时遇到错误 错误如下 10 08 32 093 ERROR MyServlet 260 Servlet service for servlet MyServlet threw exception java l
  • 复选框的组合框?

    我正在尝试将这些项目制作成ComboBox可检查 我试过这个 http programmingexamples net wiki Qt ModelView ComboBoxOfCheckBoxes http web archive org
  • 复杂的 MySQL 查询

    我正在 WordPress 中创建一个网站 其中包含电视节目的信息 我使用自定义字段来选择每个帖子 桌子看起来像这样 id post id meta key meta value 1 1 name Smallville 2 1 season
  • 我们需要在 ARC 中的 UIAnimationBlocks 中使用 __weak self 吗?

    我们是否需要在 UIAnimation 块中使用 weak self 如下所示 如果我们不将 self 指定为弱 是否会产生保留周期问题 UIView animateWithDuration animationDuration delay
  • Firebase Android,检查对象(具有多个子对象)是否存在

    我正在使用 Firebase 数据库来存储用户的报告 每个用户只能提交 10 份不同的报告 在下面的示例中 我们有一个名为 Jasna Kuljancic 的用户 他提交了 3 份报告 我的问题是如何检查用户是否已经提交了特定报告 我必须检
  • 类似对象的 Javascript 函数,即“$”可以用作函数,例如$() 以及对象 $

    标题中的问题 我一直想知道并未能从 jQuery 源代码中找到答案 这是如何完成的 重申一下 在 jQuery 中 如何成为一个函数 例如 以及一个对象 我可以用一种方式或另一种方式创建它 就像这样 var function return
  • 引用硬币 Firebase 数据库将硬币倍增,直到应用程序崩溃

    我在我的应用程序中添加了推荐硬币系统 如果您将其推荐给某人 您将获得 100 个硬币 并且您使用的推荐代码是相同的 但问题是 当我运行应用程序并使用推荐代码硬币时 除非应用程序崩溃 否则推荐代码硬币会不断增加 两个帐户中的金币都应添加 10
  • 如何将 Content-Length、Content-Type 和 Last-Modified 添加到 HTTP 响应消息标头

    如何使用 net 将 Content Length Content Type 和 Last Modified 添加到 HttpResponseMessage 标头 添加这些字段后 我需要将所有这些值手动附加到响应中 我需要从服务器返回响应
  • 向jetty添加多个资源目录

    希望在 Jetty 中使用多个静态目录 当服务器运行时 http localhost 8282 A http localhost 8282 B http localhost 8282 C A 置于 X V A 中 B 置于 Q Z B 中
  • Cloud Run 是否需要 NGINX?

    我正在为我的博客和工作网站使用 Cloud Run 我真的很喜欢它 我已经根据 google 教程通过容器化部署了 python API 和 Vue Nuxt 应用程序 我不明白的一件事是为什么前面不需要 NGINX Use the off
  • 如何在Python中打印一个数字n次? [复制]

    这个问题在这里已经有答案了 如何在Python中打印一个数字n次 我可以像这样打印 A 5 次 print A 5 AAAAA 但不是 10 个 像这样 print 10 5 50 我想要的答案是10 10 10 10 10 我如何逃避数学
  • 将文件附加到存档而不读取/重写整个存档

    我有很多文件想要存储在一个存档文件中 我的第一个方法是将文件存储在压缩的 tarball 中 问题是 如果添加单个文件 我必须重写整个存档 我可以摆脱 gzip 压缩 但添加文件仍然很昂贵 您建议使用哪种其他存档格式来允许快速追加操作 Th
  • Laravel 迁移 - 创建时间戳时出现问题

    我正在尝试在我的 Laravel 实例上运行迁移 它们只是默认迁移 用户和密码重置 但是当它尝试创建时间戳时 它会抛出此错误 Illuminate Database QueryException SQLSTATE 42000 Syntax
  • 正则表达式中的可选字符

    任务非常简单 但我还没有想出一个好的解决方案 字符串可以包含数字 破折号和加号 或者仅包含数字 0 9 做了我需要的大部分工作 除了当用户输入像 这样的垃圾时 我在常规前瞻方面运气不佳 因为破折号和加号可能位于字符串中的任何位置 有效字符串
  • 来自 QDataStream 的 QT QString

    我正在使用缓冲区 并试图从中获取字符串 但不起作用 Example void myFunc QDataStream in quint8 v in gt gt v Ok I caught v value successfuly QString
  • 如何通过 grunt-contrib-uglify 按顺序缩小 js 文件?

    我有一个如下所示的目录 文件夹 b js 文件夹 jQuery js 文件夹 a js 文件夹 sub c js 我想将所有这些js文件缩小到一个js文件中in order jQuery js gt a js gt b js gt c js
  • VBA 多个循环匹配条件

    如果这是重复的 我深表歉意 因为我一直在搜索但没有找到答案 我对 VBA 以及它们如何构造循环很陌生 我正在尝试进行搜索和比较 我需要比较第一行中的值 看看它们是否与第二行匹配 如果不匹配 则继续移动到下一行 请参阅下面的我的代码 它运行时