Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多电子表格第一列与主表比较的VBA代码

多电子表格第一列与主表比较的VBA代码
EN

Stack Overflow用户
提问于 2017-03-30 07:32:49
回答 1查看 84关注 0票数 2

我有VBA代码,用于比较第一列,并突出显示sheet2的第一列中的单元格,这在sheet1中没有。

我是新的VBA和不擅长编码部分,需要在一个excel表工作,其中有多个电子表格(这可能从5到10)。sheet1是母版,其他工作表应与母版进行比较,并突出显示母版中不存在的单元格。

代码语言:javascript
运行
AI代码解释
复制
    Public Sub CompareSheets()

    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim cell As Range, rng As Range

    Set ws1 = Worksheets("Sheet1")
    Set ws2 = Worksheets("Sheet2")
    Set rng = ws1.Range("A1:A20")
    For Each cell In rng
        Celladdress = cell.Address
        If cell <> ws2.Range(Celladdress) Then
           cell.Interior.Color = vbYellow
           ws2.Range(Celladdress).Interior.Color = vbYellow
        End If
     Next cell    
   End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-30 12:27:48

这段代码避免了逐行比较(针对您的注释),并在Sheet2、Sheet3、Sheet4等的A列中查找Sheet1列A中的每个值。它还定位大于Sheet1中有值的行总数的行。

这并不会强迫单元格进行vbYellow。相反,它使用条件格式在非匹配单元格上显示vbYellow。它们可以像强制vbYellow单元一样被过滤。这里的好处是,一旦纠正了一个值(与Sheet1!A:A匹配),突出显示就会自动删除。

代码语言:javascript
运行
AI代码解释
复制
Option Explicit

Sub CompareSheets()
    Dim lrw1 As Long, lrwn As Long, w As Long

    'get the last row of values in master sheet
    With Worksheets(1)
        lrw1 = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With


    'the first worksheet (e.g. worksheets(1) ) is the 'master sheet' so we start at 2
    For w = 2 To Worksheets.Count
        With Worksheets(w)
            lrwn = .Cells(.Rows.Count, "A").End(xlUp).Row
            With .Range(.Cells(1, "A"), .Cells(Application.Max(lrwn, lrwn), "A"))
                .FormatConditions.Delete
                With .FormatConditions.Add(Type:=xlExpression, _
                        Formula1:="=OR(ROW()>" & lrw1 & ", ISNA(MATCH($A1, " & Worksheets(1).Columns("A").Address(external:=True) & ", 0)))")
                    With .Interior
                        .PatternColorIndex = xlAutomatic
                        .Color = vbYellow
                    End With
                    .StopIfTrue = True
                End With
            End With
        End With
    Next w

End Sub

我觉得你的叙述有点混乱。它要么与提供的代码相矛盾,要么自相矛盾。这个提议的解决方案背后的逻辑主要来自于您的评论。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43122263

复制
相关文章
使用VBA删除工作表多列中的重复行
自Excel 2010发布以来,已经具备删除工作表中重复行的功能,如下图1所示,即功能区“数据”选项卡“数据工具——删除重复值”。
fanjy
2022/11/16
11.8K0
使用VBA删除工作表多列中的重复行
VBA删除空白行和空白列代码
这是一个学习的代码,做了解析,做为个人保存,学习之用。 'VBA删除空白列 Sub DeleteEmptyRows() Dim LastRow As Long, r As Long LastRow = ActiveSheet.UsedRange.Rows.Count '得到所使用区域的总行数 LastRow = LastRow + ActiveSheet.UsedRange.Row - 1 '使用区域的总行数+所使用区域的开始第1行用-1 For r = LastR
哆哆Excel
2022/10/25
3.3K0
比较列存储索引与行索引
原因:     之前已经写过一篇关于列存储索引的简介https://cloud.tencent.com/developer/article/1032222,很粗糙但是基本阐明了列存储索引的好处。为了更好的理解列存储索引,接下来我们一起通过列存储索引与传统的行存储索引地对比2014中的列存储索引带来了哪些改善。由于已经很多介绍列存储,因此这里我仅就性能的改进进行重点说明。 测试场景     我创建了5个测试,尽量保证测试环境避免来自外界的重负载进而影响到结果。测试结果基于两个独立的表,分别是: FactTra
用户1217611
2018/01/30
1.6K0
比较列存储索引与行索引
一种后遗症比较多的多列自动对齐
该文讲述了一种后遗症比较多的多列自动对齐方法,虽然不使用JS也可以实现,但存在较多后遗症。该方法通过使用JS来避免这些问题,提高了容器的利用率。
练小习
2017/12/29
7640
CSS——多列
多列属性可以将文本设计成像报纸杂志那种多列排版的布局,类似于Microsoft Word中的段落分栏功能。
Html5知典
2019/11/26
1.2K0
VBA技巧:使用数组复制不同的列
假设我们只想复制工作表中指定列的数据,例如第1、2、5列的数据,有多种实现方法,这里介绍使用数组的VBA代码实现。
fanjy
2022/11/16
2.9K0
ExceLVBA学习笔记之Find+多列多行删除+列数字与列字母互转
Rows(“2474:2484”).deleteShift:=xlToLeft
哆哆Excel
2022/10/25
1.8K0
ExceLVBA学习笔记之Find+多列多行删除+列数字与列字母互转
VBA操作VBA——代码操作
有了前面VBA工程对象的基础,要操作代码就容易了,只要找到对象对应的属性、方法就可以。
xyj
2020/07/28
2.5K0
VBA操作VBA——代码操作
VBA:根据指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要删除第一行数据,保留后一行的数据。
Exploring
2022/09/20
3.3K0
VBA:基于指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要保留最后测试的数据。之前通过拷贝行的方式保留最后一行的数据(参见文末的延伸阅读1),但运行效率较低。目前通过借助数组和字典达到删除重复行的效果。
Exploring
2022/12/18
3.5K0
VBA:基于指定列删除重复行
VBA专题01:操作形状的VBA代码
Excel提供了多种多样的形状类型,如下图1所示。本文主要讲述VBA操作形状的基础操作。
fanjy
2019/07/19
5.9K0
SQL 将多列的数据转到一列
如题。假设我们要把 emp 表中的 ename、job 和 sal 字段的值整合到一列中,每个员工的数据(按照 ename -> job -> sal 的顺序展示)是紧挨在一块,员工之间使用空行隔开。
白日梦想家
2020/09/08
5.6K0
Power Query-汇总文件夹中多工作簿多工作表到一个文件
如果当excel为电子表格的人,做了一辈子的工作也是重重复复的“复制—粘贴”的工作,因为Excel中有VBA编程的功能,能使用很多重复的工作一个小程序是搞掂,所以就是“Excel”了。
哆哆Excel
2022/10/25
2.2K0
Power Query-汇总文件夹中多工作簿多工作表到一个文件
AutoHotkey 通过 COM 操作 Excel 文档
最近真的是跟电子表格干上了。 还有原来金士顿的终身质保不是噱头,原来真的可以。最近干坏了一条1600内存,大概5年以前的。本来打算咸鱼淘一个,价格出奇的不合适,当地又没有总代,所以通过400客服给了一个河南总代的电话,寄过去代保就可以了。大概历时一个月左右顺丰包邮寄回。撒花赞一下
怪兽
2022/10/04
1.9K0
jqm的多列布局demo,html5的多列布局demo,多列布局的详细讲解,html5开发实例详解
由于移动设备屏幕宽度较小,所以一般不建议使用多列布局。但有时你可能需要并排放置一些元素(如按钮之类的)。 
业余草
2019/01/21
1.7K0
《Python for Excel》读书笔记连载1:为什么为Excel选择Python?
本节为《Chapter 1:Why Python for Excel?》的第一部分,简单地讲解了Excel的历史,Excel编程的最佳实践,以及Excel为适应发展而作出的变化。 当你每天花费很多时间
fanjy
2021/11/26
5.4K0
钓鱼常用的vba代码
点击上方蓝字关注我们 下载并执行程序 Private Sub DownloadAndExecute() Dim droppingURL As String Dim localPath As String Dim WinHttpReq As Object, oStream As Object Dim result As Integer droppingURL = "https://example.com/mal.exe" localPath = "c
鸿鹄实验室
2021/04/15
8570
钓鱼常用的vba代码
VBA代码调试
VBA写的再熟练的人,一般也很难做到一次性就写出完美无错的代码,总会有一些考虑不周全的情况或者单词写错而导致的程序出错,特别是新手,出错的可能就更加的高了。
xyj
2020/07/28
1.5K0
VBA代码调试
SQL删除多列语句的写法
最近在写SQL过程中发现需要对一张表结构作调整(此处是SQL Server),其中需要删除多列,由于之前都是一条SQL语句删除一列,于是猜想是否可以一条语句同时删除多列,如果可以,怎么写法?
PHP开发工程师
2021/06/02
3.6K0
VBA到底有多厉害?VBA公众号推荐
今天给大家推荐一位VBA学习公众号-VBA说 VBA到底有多厉害? 其实除了不能生孩子,其余都行。 1 先说说VBA的趣(装)味(X)应用 ●利用Excel VBA爬取糗事百科图片 ●利用Excel
Sam Gor
2019/07/30
2K0

相似问题

比较excel文件中多个电子表格第一列的VBA代码

10

比较列的VBA代码

21

VBA与列值的比较

115

比较一列与多列

22

VBA中多页和列数据的比较

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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