Excel / VBA 通过交叉引用 2 个不同的工作表然后删除 1 行来删除重复行

2023-12-10

我有 2 个单独的工作表,我们称它们为工作表 A、工作表 B。我在工作表 B 中有数据,该数据也在工作表 A 中。我想找到那些相等的行并将它们从工作表 B 中删除。

我无法合并两张表并使用过滤器,因为我正在执行动态 SQL 来查询不同的数据。

每张表都有一个唯一的键列

我可以接受 VBA 建议和 Excel 公式。只要我不合并床单即可。

非常感谢大家!

抱歉,显然我犯了一个错误。这里某处存在无限循环。顺便说一句,这是本的回答。我刚刚重新发布了一个可编译的版本。

    Sub CleanDupes()
    Dim wsA As Worksheet
    Dim wsB As Worksheet
    Dim keyColA As String
    Dim keyColB As String
    Dim rngA As Range
    Dim rngB As Range
    Dim intRowCounterA As Integer
    Dim intRowCounterB As Integer


    keyColA = "A"
    keyColB = "A"

    intRowCounterA = 1
    intRowCounterB = 1

    Set wsA = Worksheets("Sheet2")
    Set wsB = Worksheets("Sheet1")

    Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)


        Set rngA = wsA.Range(keyColA & intRowCounterA)

         intRowCounterB = 1
        Do While Not IsEmpty(wsB.Range(keyColB & intRowCounterB).Value)

            Set rngB = wsB.Range(keyColB & intRowCounterB)

            If rngA.Value = rngB.Value Then

                 Rows(intRowCounterB).EntireRow.Delete
                 intRowCounterB = intRowCounterB - 1


            End If
              intRowCounterB = intRowCounterB + 1
        Loop
        intRowCounterA = intRowCounterA + 1
    Loop
End Sub

Sub CleanDupes()
    Dim wsA As Worksheet
    Dim wsB As Worksheet
    Dim keyColA As String
    Dim keyColB As String
    Dim rngA As Range
    Dim rngB As Range
    Dim intRowCounterA As Integer
    Dim intRowCounterB As Integer
    Dim strValueA As String


    keyColA = "A"
    keyColB = "B"

    intRowCounterA = 1
    intRowCounterB = 1

    Set wsA = Worksheets("Sheet A")
    Set wsB = Worksheets("Sheet B")

    Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)
        intRowCounterB = 1
        Set rngA = wsA.Range(keyColA & intRowCounterA)
        strValueA = rngA.Value
        Do While Not IsEmpty(wsB.Range(keyColB & intRowCounterB).Value
            Set rngB = wsB.Range(keyColB & intRowCounterB)
            If strValueA = rngB.Value Then
                 'Code to delete row goes here, but I'm not sure exactly'
                 'what it is.'
                 wsB.Rows(intRowCounterB).Delete
                 intRowCounterB = intRowCounterB - 1
            End If
            intRowCounterB = intRowCounterB + 1
        Loop
        intRowCounterA = intRowCounterA + 1
    Loop
End Sub

这应该可以帮助你开始。

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

Excel / VBA 通过交叉引用 2 个不同的工作表然后删除 1 行来删除重复行 的相关文章

随机推荐

  • android 与房间的左连接查询

    我正在尝试使用房间库更改我的 sqlite 数据库 我对左连接查询有点困惑 我已经用 sqlite 实现了它 但不知道如何实现相同的房间 这是我的表创建 第一个表 通知 db execSQL CREATE TABLE IF NOT EXIS
  • 使用多个“for”循环解码嵌套 JSON

    我是 Python 新手 上周 并且已经达到了我的极限 在这个问题上花了三天时间 大部分时间都在 stackoverflow 但我不知道如何继续下去 The Json有多个嵌套数组 它可以包含三个 如下面的示例 json txt 所示 或
  • 使用 pyinstaller 创建 Django exe 时静态文件的位置

    我有一个具有以下结构的 Django 项目 根 视频 静止的 模板 settings py 中的 STATIC URL 设置为 STATIC URL static 我设法使用 pyinstaller 从 manage py 创建一个 Win
  • HTML5 验证错误:在此上下文中不允许元素源作为音频的子元素

    这是我作业中的一段代码 我检查了 w3 样本http www w3schools com html html5 audio asp并且格式正确 我是因为这些错误而发疯还是我错过了什么 我相信这就是 HTML5source元素不喜欢类型的编写
  • tsconfig.json 中的 target 是做什么用的?

    什么是target in tsconfig json表示 compilerOptions sourceMap true target es5 module commonjs jsx react moduleResolution classi
  • Google 应用程序脚本中的 Adword 脚本

    我无法在 Google App 脚本中找到 Adword API 支持 我可以从 adword 帐户编写 adword 脚本 但目前我正在处理多个帐户 几乎 25 个 我要做的就是进入个人帐户并在其中复制我的脚本帐户和adword脚本有一个
  • 在pykml中读取带有多个地标的kml文件

    In pykml 我可以使用以下代码读取文件中的第一个地标 with open filename as f pm parser parse f getroot Document Folder print got print pm Place
  • 使用 Storyboard 和 Xcode 4.5 的 UIPageViewController

    我想问一些关于 Xcode 4 5 的问题 我正在使用故事板创建应用程序 这个应用程序有UIPageViewController 但是如果我想定义标识符UIViewController在情节提要的 IB 中 已经没有地方了 你能告诉我 我可
  • 如何进行跨站ajax请求?

    浏览器不允许跨站点 AJAX 调用 这是安全限制 有什么可能的解决办法吗 EDIT 我只控制来电者网站 如果你控制双方 那么就有很多选择 例如JSONP or 修改标题远程网站的响应 很遗憾 JSONP 仅在远程网站支持时才有效 你can
  • Opencv:在盒子中找到盒子

    后勤 opencv 2 4 和 Python 2 7 The image I m working with 问题 我感兴趣的是隔离围绕 9 条垂直线和水平线形成盒子的轮廓 我只是不确定该怎么做 我看过各种教程 例如关于数独谜题的教程 这些教
  • 通过引用临时传递函数的生命周期[重复]

    这个问题在这里已经有答案了 我可以做这样的事情 const int i 5 并将临时的生命周期延长到i 但怎么样 const int fun const int i return i int main const int r fun 5 C
  • matplotlib - 更改图大小但保持字体大小不变

    我想显示几个不同大小的图形 确保打印图形时文本始终具有相同的大小 我怎样才能做到这一点 举个例子 假设我有两个数字 import matplotlib pylab as plt import matplotlib as mpl mpl rc
  • Angular 9 通用错误:组件“HeaderComponent”未解析:

    更新到 Angular 9 和 Universal 9 后 运行时出现错误npm run build ssr npm run serve ssr Error Component HeaderComponent is not resolved
  • 疯狂邮件方法不起作用?

    在配置菜单下的 spree 管理面板中 我配置了邮件 smtp 端口等 创建新邮件方法后 我按下测试邮件按钮 我收到以下警报消息 测试邮件发送成功 甚至终端窗口也显示电子邮件发送成功消息 但是邮件未送达相应地址 发送测试邮件后控制台日志 S
  • 将装置转换为 Rails 中的 Factory Girl

    我想将我的装置迁移到 Rails 中的 Factory Girl 有没有简单的方法可以转换factories rb 文件中的所有yml 文件 我假设您想要做的是找到一个脚本来查看您的模型并为它们生成工厂 我尝试过一次 使用除了factory
  • 如何选择最大连接池大小?

  • 如何向彩色图像添加噪声 - Opencv

    我正在尝试向图像添加噪声 然后对其进行降噪以测试我的降噪算法 所以对于基准我指的是这个在线测试样品 我正在尝试复制噪声模型 参考这个线程1 2我正在像这样向图像添加噪点 Mat mSource Bgr mSource Bgr imread
  • 如何在二叉搜索树中迭代添加元素?

    public void Insert int value if value lt Data if LeftNode null LeftNode new TreeNode value else LeftNode Insert value el
  • build.gradle 中的 gradle 任务方法语法

    我是 gradle 和 groovy 的新手 我正在阅读 Gradle 的 usr 指南 并对任务方法有一些语法问题 task intro dependsOn hello doLast println I m Gradle 问题1 上面的代
  • Excel / VBA 通过交叉引用 2 个不同的工作表然后删除 1 行来删除重复行

    我有 2 个单独的工作表 我们称它们为工作表 A 工作表 B 我在工作表 B 中有数据 该数据也在工作表 A 中 我想找到那些相等的行并将它们从工作表 B 中删除 我无法合并两张表并使用过滤器 因为我正在执行动态 SQL 来查询不同的数据