首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在VBA中比较2个数组并写入另一个工作表

在VBA中比较两个数组并写入另一个工作表,可以通过以下步骤实现:

  1. 创建两个数组,分别存储要比较的数据。
  2. 创建一个新的工作表,用于存储比较结果。
  3. 使用循环结构(例如For循环)遍历第一个数组的每个元素。
  4. 在循环中,使用另一个循环结构(例如For Each循环)遍历第二个数组的每个元素。
  5. 在内部循环中,使用条件语句(例如If语句)比较两个数组的元素。
  6. 如果元素相等,则将相应的数据写入新工作表中。可以使用Range对象的Value属性将数据写入指定的单元格。

以下是一个示例代码:

代码语言:txt
复制
Sub CompareArrays()
    Dim arr1 As Variant
    Dim arr2 As Variant
    Dim resultSheet As Worksheet
    Dim i As Long
    Dim j As Long
    Dim resultRow As Long
    
    ' 假设数组已经被填充了数据
    arr1 = Array("A", "B", "C", "D")
    arr2 = Array("B", "D", "E", "F")
    
    ' 创建新的工作表
    Set resultSheet = ThisWorkbook.Sheets.Add
    
    ' 初始化结果行数
    resultRow = 1
    
    ' 遍历第一个数组
    For i = LBound(arr1) To UBound(arr1)
        ' 遍历第二个数组
        For j = LBound(arr2) To UBound(arr2)
            ' 比较两个数组的元素
            If arr1(i) = arr2(j) Then
                ' 将相等的元素写入新工作表
                resultSheet.Cells(resultRow, 1).Value = arr1(i)
                resultRow = resultRow + 1
                Exit For ' 找到匹配的元素后,退出内部循环
            End If
        Next j
    Next i
End Sub

这段代码会比较两个数组arr1arr2中的元素,并将相等的元素写入新创建的工作表中。你可以根据实际情况修改数组的内容和工作表的位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • yhd-VBA从一个工作簿的某工作查找符合条件的数据插入到另一个工作簿的某工作

    今天把学习的源文件共享了出来,供大家学习使用 上次想到要学习这个 结合网友也提出意见,做一个,如果有用,请下载或复制代码使用 【问题】我们在工作中有时要在某个文件(工作簿)查找一些数据,提取出来...想要做好了以后同样的工作就方便了 【想法】 一个程序主控文件 设定:数据源文件(要在那里查找的工作簿) 设定:目标文件(要保存起来的那个文件) 输入你要查找的数据:如:含有:杨过,郭靖的数据。...要复制整行出来 主控文件设定如图 数据源文件有两个工作 查找到"郭靖"的数据保存到目标文件的【射雕英雄传】工作 查找到"杨过"的数据保存到目标文件的【第一个】工作 【代码】 Sub...从一个工作簿的某工作查找符合条件的数据插入到另一个工作簿的某工作() Dim outFile As String, inFile As String Dim outWb As...则没有找到匹配的 MsgBox ("一个也没找到") End If '==end=工作内部

    5.3K22

    VBA编程练习05. 工作实现七段显示

    学习Excel技术,关注微信公众号: excelperfect 本次练习题 这是一个有趣的VBA编程练习,来自于dailydoseofexcel.com。...使用VBA代码工作中将数字显示为七段显示,如下图1所示。 ? 图1 单元格C9输入四位及四位以内的数字,单元格区域B2:P6会像电子显示屏一样以七段形式显示这个数字。...LBound(aDigits(CLng(Mid$(sValue, i, 1)))) To UBound(aDigits(CLng(Mid$(sValue,i, 1)))) '获取相应单元格设置颜色...Interior.Color = lON End If End If Next j Next i End Sub 在数字所在的工作模块...建议有兴趣的朋友多调试理解这段代码,帮助理解数组的运用、以及单元格的获取、偏移、设置等VBA操控Excel的基础知识。

    1.7K10

    VBA实用小程序61: 文件夹内所有文件运行宏工作簿所有工作运行宏

    学习Excel技术,关注微信公众号: excelperfect 文件夹中所有文件上运行宏,或者Excel工作簿中所有工作上运行宏,这可能是一种非常好的Excel自动化方案。...例如处理类似的数据工作簿文件想要提取数据或转换该工作簿。下面给出了适用这种情况的一些VBA程序,这些程序代码整理自analystcave.com,供有兴趣的朋友参考。..." End Sub 工作簿所有工作运行宏 代码如下: '本程序来自于analystcave.com Sub RunOnAllWorksheets() Dim folderName As String...MsgBox "在所有工作已完成宏执行" End Sub 代码: 1.打开ActiveWorkbook的每个工作而不是ActiveSheet,可以根据需要删除If语句。...2.使用要在每个打开的工作上运行的任何代码替换“在这里放置你的代码”部分。

    4.7K11

    VBA实战技巧19:根据用户工作的选择来隐藏显示功能区的剪贴板组

    excelperfect 有时候,我们可能想根据用户工作的选择来决定隐藏或者显示功能区选项卡的特定组,避免用户随意使用某些功能而破坏我们的工作结构。 下面,我们通过一个示例来演示。...我们想让用户选择工作表列B的任意单元格时,隐藏“开始”选项卡的“剪贴板”组,而当用户选择其他单元格时,该组又重新显示,如下图1所示。 ?...图1:当用户选择的单元格列B时,“剪贴板”组隐藏,处于其他单元格时,“剪贴板”组显示 首先,我们新建一个工作簿保存。...图2:Custom UI Editor For Microsoft Office编辑输入XML 重新打开工作簿,按Alt+F11键打开VBA编辑器,插入一个标准模块,输入下面的代码: Public...Else bln =True End If rxIRibbonUI.InvalidateControlMso "GroupClipboard" End Sub 保存关闭工作簿

    4.1K10

    Python代替Excel VBA,原来真的可以

    这几个包提供的功能比较有限,所以给很多同学造成了Python不如VBA的错觉。 这里要给大家重点推荐的是的win32com包和xlwings包。...▊ xlwings牛刀小试 下面这段代码用于工作簿批量创建10个工作: >>> import xlwings as xw>>> app=xw.App()>>> bk=app.books...下面的代码分别使用Excel VBA和xlwings的API来选择工作的一个单行。...【Python xlwings】>>> sht["1:1"].select() 使用xlwings的新语法从工作获取一个单行或单列区域的值,返回的是一个列表表示的一维数组。...对照学习是将两种语言的语法打碎,实现语法知识点一对一的对照和融合,能帮助我们自己熟悉的语境里快速理解和掌握另一门语言。

    3K20

    Excel VBA编程

    利用UBound求数组的最大索引号 利用LBound函数求最小索引号 求多维数组的最大和最小索引号 用join函数将一维数组合并成字符串 将数组内容写入工作 数组的存取 特殊数据的专用容器——常量...判断某个工作簿是否已经打开 判断文件夹是否存在指定名称的工作簿文件 向未打开的工作簿输入数据 隐藏活动工作外的所有工作 批量新建指定名称的工作 批量对数据进行分离,保存到不同的工作 将多张工作的数据合并到一张工作...Dim arr As Variant arr = Array(1, 2, 3, 4) Text = Join(arr) MsgBox Text End Sub 将数组内容写入工作...VBA,columns表示工作或某个区域中所有行组成的集合,要引用工作汇总指定的行,可以使用行号或者索引号两种方式 activesheet.columns("F:G").select '选中活动工作的第...标签告诉VBA,当程序运行过程晕倒运行时错误时,跳转到标签所在行的代码继续执行程序,实际上就是让程序跳过出错的代码,从另一个地方重新开始执行程序。

    45.5K22

    示例详解VBA的Split函数

    图1 本示例,只指定了第一个参数,即要拆分的文本。由于未指定分隔符,因此将空格字符作为默认分隔符。 注意:VBA Split函数返回索引基于0开始的数组。...可以使用类似的代码VBA创建一个自定义函数,该函数将文本作为输入返回单词数。...WorksheetFunction.Trim(rngCellRef.Text), " ") GetWordNum = UBound(strResult) + 1 End Function 这样,可以工作像使用...& vbNewLine Next i SplitAddress = Mid(strDisplay, 1,Len(strDisplay) - 1) End Function 这样,可以工作像使用...图6 示例5:获取文本中指定的字符串 使用VBA的Split函数,可以指定要使用结果数组的哪个部分。 下面是一个自定义函数的代码,可以在其中指定一个数字,它将从数组返回该元素。

    7.5K20

    手把手教你|VBS或VBA的排序算法

    03 自行学习VBA内将数据写入到本地磁盘的txt文件的方法,可百度获取到源码(跟排序算法无关,这是为了比较清楚地查看到排序结果)。...04 理清逻辑思路,设计排序算法,主要思路是将需要参与排序的标签都先引入到SE的VBA环境,再一一存储到数组,使用数组功能进行排序。...另一个数组用于存储排序的结果,称为排序数组,排序数组内每个元素上存储的内容为数据数组的元素编号,以便能快速于实际的标签对应起来。...SE内创建一个画面,放置一个文本框和2个按钮,文本框用于关联系统标签秒,从而实现每秒变化时文本框的值变事件内执行算法程序。2个按钮分别为初始化开始排序和停止排序。程序都在VBA内。...没有点击初始化按钮时,系统会将排序标签的默认状态记录到本地磁盘的文件内,本例子如下: 点击初始化开始排序按钮,系统会按每秒一次的频率监测需要排序的标签值状态。

    16210

    简单的Excel VBA编程问题解答——完美Excel第183周小结

    6.If... End If块的某些VBA语句总会执行吗? 不一定,除非还有Else子句。条件为False时,If … End If语句内的语句不会被执行。...13.过程的代码行数有什么限制? 没有限制,但是良好的编程习惯规定过程不应太长,最多30至40行代码是合理的。 14.如何将数组作为参数传递给过程? 数组名后加上空括号。...VBA代码,如何表明该值是日期? 通过将其括#字符。 18.哪个VBA函数用于为日期添加间隔? DateAdd函数。 19.哪两个函数用于搜索文本(另一个字符串查找一个字符串)?...23.VBA程序中使用哪个Excel对象引用的工作表单元格区域? Range对象。 24.假设单元格区域引用单个工作表单元格,你如何知道该单元格是否为空?...包含工作中所有已使用单元格的最小单元格区域。 26.如何在单元格添加批注? 获取引用该单元格的Range对象,然后调用AddComment方法。

    6.6K20

    Excel VBA编程教程(基础一)

    step three Excel 工作簿VBA 代码通常保存在工作对象或模块。本例,我们用模块保存 VBA 代码。...首先选中左侧工程列表工作簿,后右键,弹出的选项列表,选择「插入」。二级菜单,选择「模块」,完成插入新模块。 插入完成后,工程列表对应工作簿内,模块文件夹下,显示新插入的模块。...VBA 工程:显示当前 VBA 工程包含的所有对象。通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作对象、模块等。 属性窗口:查看和设置选中对象的属性的窗口。...立即窗口:代码运行过程,打印出的内容,立即窗口中显示。一般用于调试代码。 管理VBA工程 通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作对象、模块等。...With 结构实例 现在看一个实际的例子,需要将工作簿 Sheet1 工作设置新名称,然后设置标签颜色为黑色,最后隐藏工作

    12.1K22

    Excel编程周末速成班第26课:处理运行时错误

    语法错误是VBA语法的错误。VBA编辑器会在你编写代码时捕获标记语法错误,因此它们永远不会影响程序执行。...如果程序VBA编辑器运行,则可以使用此按钮暂停程序突出显示发生错误的代码行。但是,如果工程使用密码锁定(由于几乎总是锁定分发的应用程序),则“调试”选项将不可用。 帮助。...一个示例是Workbook对象,如果尝试打开磁盘上不存在的工作簿,或者尝试将工作簿保存到不存在的磁盘上,则Workbook对象会捕获错误显示其自己的对话框(如图26-2所示))。...只要数组索引可能超出范围,尝试给数组赋值或从数组读取数据之前,使用LBound和UBound检查索引值。 总是验证用户输入的数据。错误的常见原因是用户输入不正确的数据,例如在需要数字时输入字符串。...程序可以无法提前知道是否打开特定工作簿的情况下使用此功能。清单26-3展示了一个函数,该函数在打开时返回对工作簿的引用,或者没有打开时返回Nothing。程序可以调用此函数测试其返回值。

    6.8K30

    Jupyter Notebooks嵌入Excel使用Python替代VBA

    开始 首先,要在Excel运行Python代码,你需要使用PyXLL包。PyXLL使我们可以将Python集成到Excel使用Python代替VBA。...本文的其余部分,我将向你展示如何: 使用Jupyter笔记本Excel和Python之间共享数据 笔记本上写Excel工作函数(udf) 脚本Excel与Python代替VBA 从Excel获取数据到...编写自定义Excel工作函数(或“ UDF”)。...这用于使用Python函数构建的Excel构建模型,这些函数当然可以使用其他Python库(例如pandas和scipy)。 你也可以Jupyter笔记本编写Excel工作函数。...你可以将整个数据范围作为pandas DataFrames传递给函数,返回任何Python类型,包括numpy数组和DataFrames!

    6.4K20

    VBA一维数组转二维数组

    Excel里从单元格读取数据,获取的是一个二维的数组,这也是数组与单元格交互最常用的方式。...实际的VBA代码,我们经常会使用一些一维的数组进行数据处理,处理好之后需要写入到单元格,这个时候一般是希望写入到多行单列,但是多行单列的单元格只能接受二维的数组。...为了顺利输出到单元格,一般是用Application.WorksheetFunction.Transpose工作函数进行一个转换操作: Sub TestTranspose() Dim arr(...(VarPtrArray(arr)), VBA.Hex(VarPtrArray(tmp)) Debug.Print VBA.Hex(VarPtr(arr(0))), VBA.Hex(VarPtr...一维数组与一个多行单列二维数组的数据,在内存的排列显然是一样的,所以,只要理解数组的底层类型,将一维数组转变为一个多行单列的二维数组就很简单了,只需要改变一下SafeArray就可以,不需要重新复制数据

    2.2K00

    VBA专题07:使用VBA读写Windows注册

    Windows注册用于存储与计算机相关的各种设置,VBA的GetSetting函数和SaveSetting函数能够读写Windows注册,这样,我们不仅能够获取应用程序和硬件的信息,也可以将应用程序的信息存储注册以供使用...SaveSetting SaveSetting语句Windows注册创建或保存一个应用程序项。...说明: 1.该函数将值写入注册的HKEY_CURRENT_USER\Software\VBand VBA Program Settings键的子键。...2.如果在注册没有找到appname或者section子键,则会自动创建它们。 3.VB把setting作为字符串值写入注册。...2.该函数返回的数组的第一维元素为项名,第二维元素为各个项的值。 3.该函数返回的二维数组的下标从0开始。因此,第一个注册表项名可以通过引用元素(0,0)获取。

    3.6K10
    领券