添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文介绍如何使用VBA在Excel中处理两个表格数据的匹配问题。通过创建窗体选择匹配的工作表和基准表,并指定关联字段,实现通用的数据同步功能。前提条件是两个工作表的表头名称相同但顺序不限。详细步骤包括设置控件、读取表头信息和调用匹配函数。附带示例文件下载链接。 摘要由CSDN通过智能技术生成

Sheet2中的信息不全,需要补充完整,所以就需要VBA进行快速匹配,但是如果为了通用性,不仅仅局限于这个两张表中,就增加了一些功能。首先建立一个窗体增加如下控件:
在这里插入图片描述
三个下拉框分别为选取需要匹配的工作表,也就是本立中的Sheet2,另一个作为基准表,也就是本利中的Sheet1,二基准字段为两个表中匹配时作为关联的一个字段,本利中未学号,需要为唯一值。

新建一个模块,用于存放基础方法,共需建立一个窗口一个模块
在这里插入图片描述

基础功能模块中算法如下:

Function 获取表头数组(表名)
     '''本方法作用是输入表名,返回对应表中首行表头组成的数组
     '''使用了字典的作用是为了去重
     '关闭页面刷新
    Application.ScreenUpdating = False
    Sheets(表名).Select
    With Sheets(表名)
        表行数 = Sheets(表名).UsedRange.Rows.Count
        表列数 = Sheets(表名).UsedRange.Columns.Count
        表头数组 = Sheets(表名).Range(Cells(1, 1), Cells(1, 表列数)).Value
        Dim 表头字典 As Object '声明字典对象,亦可通过声明变体型变量完成声明 >>> Dim d
        Set 表头字典 = CreateObject("Scripting.Dictionary")    '声明字典
        For i = 1 To 表列数
            表头字典(Sheets(表名).Cells(1, i) 
Dim i As Integer    ''遍历第一个 表格 Dim j As Integer    ''遍历第 表格 For i = 2 To 100     ''第一个 表格 的行数         For j = 2 To 7585 ''第 表格 的行数          If Sheets ("Sheet1").Cells(i,
'双 匹配 查询,和VLookUp函数类似,不同的是可以 匹配 2个字段KeyCell 匹配 数据 的第一列,MatchCell 匹配 数据 的第MatchIndex 列,如果2个都相等则返回 数据 区域第ReturnIndex列的值 'KeyCell:第一列 匹配 的单元格 'MatchCell:第 匹配 项目, 匹配 第MatchIndex列 'Zone : 数据 区域 'MatchIndex:第 匹配 的列序号 'ReturnIndex:返回值的列序号 Function VlookMatch(KeyCell As Range, Mat
① 如果正确安装了WPS,但是却被扫描没有安装,就进行下面的操作。   打开C:\Windows\SysWOW64这个目录,并找到EdpUninstallSoftware.crc这个文件,删除它。重启计算机。   ② 如果上述操作无法提取到WPS的安装,就卸载WPS,重新启动再安装WPS。   ③ 如果上述措施还是不行,就在磁盘上搜索uninst Sub 小龙虾() Dim sheetCnt As Integer, zongbiaorow As Integer, biaorow As Integer, i As Integer, j As Integer, k As Integer, p As Integer Dim s As String, target As String Dim ww As Range sheetname = ActiveWindow.ActiveSheet.Name '当前 表格 匹配 sheet页:在A/B列粘贴需要打标的源 数据 ,然后在词库页面配置好关键词,最后在H列选择 匹配 模式,即可在C列得到达标结果 词库sheet页:按识别逻辑,在B/(F&G)/(K&L)列设置需识别的关键词,然后在C/H/M列 匹配 上想标记的词句,即完成词库配置 、代码详情 1. 单列 匹配 Sub 单列 匹配 () Dim tiaojian1 As Range Dim tiaojian2 As Range Dim neirong1 As Range Dim neiro Set dbsheet1 = ThisWorkbook. Sheets ("Sheet1") ---获取第一个页签 Set dbsheet2 = ThisWorkbook. Sheets ("Sheet2") ---获取第 个页签 lr1 = dbsheet1.Cells(Rows.Count, 1).End(xlUp).Row ---获... Dim arr , h&, l%, i&, j&, n& arr = Range("a1"). Current Region.Value h = UBound( arr ): l = UBound( arr , 2) ReDim brr(1 To h, 1 To l) For i = 1 To h - 1
1. 什么是 VBA ? Visual Basic for Applications(简称 VBA )是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而 VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。 VBA 易于 学习 掌握,可以使用宏记录器记录用户的各种操作并将其转换为 VBA 程序代码。这样用户可以容易地将日常工作转换为 VBA 程序代码,使工作自动化。 VBA 百度百科
VBA 可以通过使用循环和条件语句来 匹配 两个 数据 表。首先,我们可以使用 VBA 打开 两个 数据 表,并将它们存储在工作簿或工作表中。然后,我们可以使用循环遍历其中一个 数据 表中的每一行,并在另一个 数据 表中查找 匹配 数据 。 在循环的每一步,我们可以使用条件语句来比较 两个 数据 表中的 数据 ,如果找到 匹配 数据 ,我们可以执行相应的操作,比如将 匹配 数据 复制到一个新的 数据 表中,或者对 匹配 数据 进行其他处理。 在进行 匹配 之前,我们可能需要先对 数据 进行排序或者筛选,以便能够更快地找到 匹配 数据 。我们也可以使用 VBA 的内置函数来进行 数据 匹配 ,比如使用VLOOKUP函数或者使用自定义的 匹配 算法。 最后,我们可以将 匹配 的结果输出到一个新的 数据 表中,或者直接在原始 数据 表中进行修改。通过使用 VBA ,我们可以更快速和更灵活地进行 数据 匹配 ,并且可以根据具体的需求进行定制化的 匹配 操作。 VBA 的强大功能可以为 数据 匹配 提供很大的帮助。